我把大部分时间花在Python上,所以如果我对这个问题的解决方法很短缺,请原谅我:
我希望某些类的某些方法需要登录凭据。简单地说,每个方法都应该检查是否设置了类变量user
,如果是,则继续,但如果没有,则吐出“你需要登录”的消息。
在Python中,我只想写一个装饰器来做这件事。如何使用尽可能少的冗余代码在java中完成同样的事情?
谢谢!
答案 0 :(得分:12)
在Java中解决此问题的一种方法是使用Aspect-oriented programming工具。其中一个工具是AspectJ。你可能会发现这类问题是一个常用于激励AOP的例子。
AOP可能是解决此特定问题的一种非常重要的方法,因此您可能希望探索只为每个方法添加适当的检查。在本机Java中没有任何直接等同于Python的装饰器。
答案 1 :(得分:8)
最简单的方法是编写一个类似“assertCredentials”的方法,并在每个需要凭据的方法的开头调用该方法。如果未设置凭据,则该方法应抛出异常,这将中止父方法。
Java有注释可用于装饰方法等,但我不认为在这种情况下使用注释会简化事情。
答案 2 :(得分:7)
你可以尝试Google Guice AOP,它比像AspectJ这样的AOP框架相对更轻量级。
答案 3 :(得分:-2)