获取带注释的字段变量额外信息

时间:2016-02-05 10:33:07

标签: java interface annotations

我有一个具有一些属性的类,并且它们使用一个自定义注释进行注释,我希望它的信息在另一个类中。

如何创建检索注释实例以及如何获取其额外信息?

我的源代码:

/**custom annotation **/

public @interface Info {
    public String name();
}

/**class where i used custom annotation **/

class ABC {
@Info(name="Institution Name")
    private String Name;
}

1 个答案:

答案 0 :(得分:0)

您需要使用保留政策RetentionPolicy.RUNTIME制作注释,以便能够在RUNTIME上加入您的注释。

@Retention(RetentionPolicy.RUNTIME)
public @interface Info {
    public String name();
}

之后,您必须使用this.getClass().getDeclaredField("name")才能获得字段。您可以使用getAnnotation(Info.class)方法获取注释。您将获得注释的实例,并且您将能够加入其信息。

https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#getDeclaredField-java.lang.String- https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#getAnnotation-java.lang.Class-