Java中有类似Python的装饰器吗?
我大部分时间都在用Python编程,所以如果我对这个问题的处理方式有点片面,请多包涵:
我想让一个类中的某些方法需要登录凭证。简单来说,就是每个方法都要检查一下类里的变量user
是否已经设置,如果设置了就继续执行,如果没有设置,就提示“你需要登录”。
在Python中,我只需要写一个装饰器来实现这个功能。那么在Java中,我该如何用尽量少的重复代码来做到这一点呢?
谢谢!
3 个回答
7
你可以试试 Google Guice AOP,它比像 AspectJ 这样的 AOP 框架要轻量很多。
8
最简单的做法就是写一个叫“assertCredentials”的方法,然后在每个需要用到凭证的方法开始时调用这个方法。如果凭证没有设置,这个方法就会抛出一个异常,这样就会终止父方法的执行。
Java有一些注解可以用来修饰方法等等,但我觉得在这种情况下使用注解并不会让事情变得更简单。