在上下文中使用@interface接口

时间:2013-12-31 05:24:59

标签: java spring hibernate spring-annotations

我在遗留项目上有一个界面,定义如下:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD})
public @interface Statistic {

    String name();

}

。所以@interface后跟两个注释,即(@Retention& @Target)。 有人可以解释这个界面是如何工作的,以及使用它的好地方。 我很擅长这些。

此外,我可以在某处使用此界面看到项目代码,并注释如下:

@Statistic(name="DDB/received") private int docReceived = 0;

这究竟意味着什么?任何人都可以清楚地阐述吗?感谢

2 个答案:

答案 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");
}