理解Java注释

时间:2017-08-18 03:20:55

标签: java reflection annotations

我看了一下,我没理解Java注释如何工作的部分内容。

到目前为止我见过的所有示例都创建了注释,然后有一个main方法,它使用反射遍历项目中的类。然后他们会做那些事情并基本上使注释工作。

但是,如果我想将我的注释项目变成一个jar,我可以将其包含在另一个项目中,例如jackson,guice,hibernate等,我无法理解这是如何工作的。一个主要的方法不适用于此好吧,对吧?

我已经找了一些关于如何制作注释的教程,这个注释是作为我的项目可以包含的jar完成的,但我还没有找到任何东西。理想情况下,我希望能够在诸如spring或play之类的web框架中使用它。

1 个答案:

答案 0 :(得分:2)

您可能想要考虑两种主要的注释。第一种是运行时注释。杰克逊就是一个例子@JsonIgnore

class Test {
    @JsonIgnore private int num;
    private String str;
}

当用户从代码中将Test传递到您的库代码中时,您可以使用getClass()检查注释并发挥您的魔力。也就是说,当用户

MyLibrary.doSomething(something)

你打电话给something.getClass()并在doSomething()内的某个地方循环注释。

另一种是编译时注释,由注释处理器处理。一个例子是来自Project Lombok的@Getter

class Test {
    @Getter private final String name;
}

注释处理器将其转换为

class Test {
    private final String name;
    public String getName() { return name; }
}

当用户调用javacjavac实际编译之前)并且在类路径上有您的库JAR时,就会完成此操作。 Examples