据我所知,使注释生效的唯一方法是反思。没有反射,java注释变得无用。这是对的吗?
public class Main{
@SomeAnnotation(name="some",value="annotation")
public void method(){
//do something.
}
public static void main(String...args){
Main main = new Main();
//Just call the method directly, How to make the @SomeAnnotation make sense?
main.method();
}
}
例如,您首先获取一个java Method对象,然后检查所有提供的注释。如果你得到了你想要的东西,那么通过反射来调用方法。例如
Method.invoke(Object, Object...args)
人们说注释可以减少繁琐的XML,但是回到XML配置,使用模式就像我们加载和解析XML文件一样,当我们调用某些方法时,我们首先得到或检查配置信息,然后做真实的东西。如何通过Annotation实现这一目标?我们得到的唯一方法是反思?
答案 0 :(得分:2)
注释的RetentionPolicy(它本身被声明为元注释)向您显示annotations不仅用于反射,还用于编译或构建时(如同{{} 3}})。
如果您需要用于理解注释处理的示例代码,可以在annotation processing tool的末尾(通过检查另一个测试类的小程序)获得。