- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
像这样:一个类有一个名为 sayHello() 的方法。当类的实例调用 sayHello() 时,在调用 sayHello() 之前自动调用另一个类中的方法。
示例代码可以是这样的:
public class Robot{
public static void doSomethingBefore(){
System.out.println("Do something before sayHello");
}
}
public class Person {
public void sayHello(){
System.out.println("hello");
}
public static void main(String[] args){
Person p = new Person();
p.sayHello();
}
}
输出结果:
Do something before sayHello
hello
似乎可以通过使用代理模式来完成。但我希望它可以更简单。
使用注释:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface MethodListener {
public String className();
public String methodName();
}
然后将MethodListener注解放在Person类的sayHello()方法上,
public class Person {
@MethodListener(className="Robot",methodName="doSomethingBefore")
public void sayHello(){
System.out.println("hello");
}
public static void main(String[] args){
Person p = new Person();
p.sayHello();
}
}
当调用带有MethodListener注解的方法时,自动调用doSomethingBefore()方法。
是否应该可以?如果可以,如何实现?
最佳答案
检查 AspectJ ,以及面向方面的编程框架。它会让你做类似的事情。
你看,为了实现这一点,你的类应该由某个容器管理,该容器实例化你的对象并成为它们的代理。
AspectJ 通过将一些“魔法”插入 VM 来提供替代方案。
关于java - 如何在调用方法之前使方法成为被动方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3163908/
我是单元测试的新手。我已经对 Controller 类进行了单元测试,但从未测试过模态类。我正在为我的应用程序使用被动 View 模式。 我正在使用 Cpp 单元测试框架。 如有任何提示,我们将不胜感
我正在尝试为 RabbitMQ 的两个数据中心之间提供灾难恢复。在主 DC 出现故障之前,辅助数据中心处于被动状态。 队列联合是不合适的,因为在辅助 DC 中的使用者激活之前它不会移动消息。除非主 D
我正在使用斯坦福标记器来确定词性。但是,我想从文本中获取更多信息。是否有可能获得更多信息,例如句子的时态或是否处于主动/被动状态? 到目前为止,我使用的是非常基本的 PoS 标记方法: List> t
我有一个客户端,您不能使用主动 FTP 连接,因为它们受接口(interface)应用程序的限制。我遇到的问题是我的 Active 设置很好,但无法理解为什么我的被动 FTP 只会超时。 我已关注这篇
正如“构建您自己的 CAB”博文系列中提到的,当您采用被动 View 设计模式时,无法利用数据绑定(bind)。这对我来说并不像我想要的那样清楚。那么,你们中的任何一个人能否展示在监督 Control
我想做的是以下内容:一个服务,持续监听 gps(是的:JUST gps)位置更新而不主动请求它们 - 即这个应用程序不应该消耗额外的资源电池生命周期或 CPU 时间,直到其他应用程序请求/接收 GPS
我正在尝试实现 Passive View基于 swing 的 gui 系统。基本上我想保持我的 View 实现(实际包含 swing 代码的部分)最少,并在我的 Presenter 类中完成大部分工作
RFC 1006 TCP 连接中主动连接和被动连接有何区别? 最佳答案 这里有解释:https://www.rfc-editor.org/rfc/rfc793 A passive OPEN reque
在 MarkLogic 7 中,副本是主动-主动还是主动-被动? 最佳答案 您是在询问本地磁盘故障转移(又名林复制)、数据库复制还是灵活复制? 事实上,这三个都是为主动-被动使用而设计的:换句话说,单
我们计划使用 kubernetes 在容器平台中设置高度可用的 Jenkins。我们正在考虑设置一个事件主机和另一个处于待机模式的主机。Jenkins 数据量将存储在两个主容器之间共享的全局存储中。
我已在多个网站( http://blogs.thesitedoctor.co.uk/tim/Trackback.aspx?guid=e81a4682-0851-490b-a3d2-adf254a701
我目前正在学习 MVP 设计模式,并且对简单逻辑应该放在哪里有疑问。 我的印象是所有业务逻辑都应该进入模型,这是否包括简单的方法,例如: public int Add(int a, int b){
我研究 MVP 模式已有一段时间,并设法创建了一些简单的 MVP 兼容应用程序。 我现在正尝试将该模式应用到一个更复杂的应用程序中,但我对这样做的最佳方式存疑。 我的应用程序只有一个 WinForm,
View 是否应该在其接口(interface)中没有任何特定于事件的内容并调用演示者普通方法来处理事件并且没有任何官方的 EventHandlers?比如 // ASPX protected voi
我有一个应用程序,需要在负载均衡器后面以主动-被动模式设置,以便所有连接都应转到主动实例。如果主动实例出现故障,它应该从被动实例启动 session 。 我收集到的唯一信息是我们只能在负载均衡器后面设
我已经使用被动 View 模式实现了一个 MVP 三元组——即 View 只包含简单的 getter 和 setter。但是我在分离 View 数据和模型数据时遇到了问题。特别是在处理 View 状态
我一直在用我认为的 Passive MVP 实现我的 android 应用。 例如,在我的 View 类中,我有一个 ListView。 查看 ListView userListView; 当一个项目
我正在尝试通过我正在构建的迁移向导中的 shell 命令执行静默安装。 msiexec /i E:\mysql-installer-community-5.6.16.0.msi /passive 虽然
我在 Passive View 上找到了 M. Fowler 的文章图案。我想在我的申请中应用它。我将 Swing 用于 UI。我花了几个小时搜索如何实现它的教程或示例,但没有找到太多有用的东西。有人
我正在用 C# 开发 WinForms 应用程序。我在 GUI 编程方面的经验有限,而且我必须即时学习很多东西。话虽这么说,这就是我正在 build 的。 查看一般 GUI 查看以下链接: GUI h
我是一名优秀的程序员,十分优秀!