5

有没有一种简单的方法来拦截java中的方法。我需要为所需的方法添加注释,以便在通过该方法之前调用一段逻辑。

public void verifyActivity() {
   // Asset if you are on a wrong page
}

@VerifyActivity
public void testLogin() {
   // Login for my automate test
}

@VerifyActivity
public void testSomethingElse() {
   // Test some other UI Automation stuff
}

编辑:

安卓应用推荐的 guice 库不包含 AOP。是否可以在不添加任何库的情况下使用反射来实现这一点?

4

4 回答 4

2

Guice 提供了实现注释的简单方法。看一下这个。

http://code.google.com/p/google-guice/wiki/AOP

http://code.google.com/p/google-guice/

于 2011-12-04T19:58:57.423 回答
2

正如 sid malani 所说, Google Guice非常适合这个。一般来说,您想阅读面向方面的编程教程......有一个名为JMangler的好工具也可能有用

于 2011-12-04T20:06:36.763 回答
0

如果您已通过动态代理对接口进行编码,则可以使用反射。

于 2011-12-04T22:03:49.683 回答
0

我怀疑没有任何 3rd 方库可以很好地完成它。

有一个名为 cglib 的库,它能够处理这些事情。

基本上它将在运行时创建拦截类的子类。您将能够通过实现 InvocationHandler 来“覆盖”方法,当调用任何超类方法时,它将充当代理。

于 2013-12-21T17:31:13.350 回答