我在遗留项目上有一个界面,定义如下:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD})
public @interface Statistic {
String name();
}
。所以@interface后跟两个注释,即(@Retention& @Target)。 有人可以解释这个界面是如何工作的,以及使用它的好地方。 我很擅长这些。
此外,我可以在某处使用此界面看到项目代码,并注释如下:
@Statistic(name="DDB/received") private int docReceived = 0;
这究竟意味着什么?任何人都可以清楚地阐述吗?感谢
答案 0 :(得分:0)
答案 1 :(得分:0)
此接口定义保留在运行时使用的注释。这将允许您测试字段或方法是否标记了它以对其执行某些操作。注释还可以具有与其相关联的元数据以供处理器使用。在这种情况下,您可以提供名称。
以下说明了可以使用此注释的两种情况:
ElementType.FIELD
@Statistic(name = "Test 1")
public String test;
ElementType.METHOD
@Statistic(name = "Test 2")
public List<Stuff> findAll() {
return findAll("order by added desc");
}