我看了一下,我没理解Java注释如何工作的部分内容。
到目前为止我见过的所有示例都创建了注释,然后有一个main方法,它使用反射遍历项目中的类。然后他们会做那些事情并基本上使注释工作。
但是,如果我想将我的注释项目变成一个jar,我可以将其包含在另一个项目中,例如jackson,guice,hibernate等,我无法理解这是如何工作的。一个主要的方法不适用于此好吧,对吧?
我已经找了一些关于如何制作注释的教程,这个注释是作为我的项目可以包含的jar完成的,但我还没有找到任何东西。理想情况下,我希望能够在诸如spring或play之类的web框架中使用它。
答案 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; }
}
当用户调用javac
(javac
实际编译之前)并且在类路径上有您的库JAR时,就会完成此操作。 Examples