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

发布于 2024-12-19 09:21:24 字数 424 浏览 3 评论 0原文

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。 是否可以使用反射来实现此目的而不添加任何库?

Is there a simple way to intercept methods in java. I need to add an annotation to required methods so that a piece of logic gets called before going through the method.

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
}

EDIT:

The recommended guice library for android apps does not contain AOP.
Is it possible to achieve this using reflection without adding any libraries?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

素衣风尘叹 2024-12-26 09:21:24

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

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

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

Guice provides easy way of implementing annotations. Check this out.

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

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

沙与沫 2024-12-26 09:21:24

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

As sid malani said Google Guice is great for this. In general you want to read up on aspect oriented programming tutorials ... There is a nice tool called JMangler that may be of use as well

老娘不死你永远是小三 2024-12-26 09:21:24

如果您已通过 动态代理。

You can use reflection if you've coded to interfaces through dynamic proxies.

诗化ㄋ丶相逢 2024-12-26 09:21:24

我怀疑如果没有任何第 3 方库,它是否可以很好地完成。

有一个名为 cglib 的库,它可以做这样的事情。

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

I doubt that it can be nicely done without any 3rd party libs.

There is a library called cglib, which is capable of such things.

Basically it will create a subclass of the intercepted class at runtime. You'll be able to "override" methods by implementing an InvocationHandler, which will act as a proxy when any of the superclass methods being called.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文