2

据我所知,使注释生效的唯一方法是反射。没有反射,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 实现这一点?我们得到的唯一方法是反射?

4

1 回答 1

3

注解的RetentionPolicy(它本身被声明为元注解)向您展示注解不仅被反射使用,而且在编译或构建时也被使用(就像注解处理工具一样)。

如果您需要示例代码来理解注释处理,它可以在注释文档的末尾找到(通过一个小程序检查另一个测试类)。

于 2012-07-17T04:51:05.187 回答