Java - 使用注释和拦截方法?

时间:2011-12-04 19:56:23

标签: java android annotations interception

是否有一种简单的方法来拦截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
}

修改

Android应用程序推荐的guice库不包含AOP。 是否可以在不添加任何库的情况下使用反射实现此目的?

4 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

正如sid malani所说,Google Guice对此很有帮助。一般来说,您希望阅读aspect oriented programming tutorials ...有一个名为JMangler的好工具也可以使用

答案 2 :(得分:0)

如果您通过dynamic proxies.

编码接口,则可以使用反射

答案 3 :(得分:0)

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

有一个名为cglib的库,它能够做到这一点。

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