介绍
本文将讨论用 Java 创建注解的方法。还有如何将注解应用于其他声明。最后,讨论一下如何在运行时使用Reflection获得注解信息。
背景
注解是J2SE 5引入的一项新功能,允许程序员将称为元数据的其他信息嵌入Java源文件中。注解不会改变程序的执行,但是在开发和部署期间,各种工具都可以使用使用注解嵌入的信息。
使用代码
创建注解与创建接口相似。只不过注解声明前面有一个@符号。注解声明本身使用注解进行@Retention注解。该@Retention注解用于指定保留策略,可以是SOURCE,CLASS或RUNTIME。
- RetentionPolicy.SOURCE 仅在源文件中保留注解,并在编译期间将其丢弃。
- RetentionPolicy.CLASS将注解存储在. class文件 中,但在运行时不可用。
- RetentionPolicy.RUNTIME将注解存储在.class文件中,并使其在运行时可用。
注解会隐式扩展 Annotation 接口。注解的主体由不带主体的方法声明组成。这些方法像字段一样工作。
在上面的例子中,我已经创建了两个部件,author并date以表示关于创建者的信息,并且类和方法的写入日期。
创建注解后,可以将其应用于类,方法,字段,参数,枚举等。在对声明应用注解时,必须为其成员提供如下值:
可以在运行时使用Reflection来查询注解,如下所示:
在上面的代码中,我查询了应用于类Test以及method的注解testMethod()。
要获取该类的注解信息,请使用以下语句:
要获取该方法的注解信息,请使用以下语句:
通过使用注解对象来打印注解信息。
问题:注解声明后,在运行期如何查询它的信息?
答:使用Reflection来查询注解
————END————