注解学习笔记(二)
注解的使用
使用@Retention
value成员变量的值只能是如下三个: RetentionPolicy.CLASS: 编译器将把注释记录在class文件中。当运行Java程序时,JVM不在保留注释,这是默认值。 RetentionPolicy.RUNTIME: 编译器将把注释记录在class文件中。当运行Java程序时,JVM也会保留注释,程序可以通过反射获取该注释。 RetentionPolicy.SOURCE: 注解仅存在于源码中,在class字节码文件中不包含。
使用@Target
ElementType.ANNOTATION_TYPE: 指定该策略的Annotation只能修饰Annotation。 ElementType.CONSTRUCTOR: 指定该策略的Annotation能修饰构造器。 ElementType.FIELD: 指定该策略的Annotation只能修饰成员变量。 ElementType.LOCAL_VARIABLE: 指定该策略的Annotation只能修饰局部变量。 ElementType.METHOD: 指定该策略的Annotation只能修饰方法。 ElementType.PACKAGE: 指定该策略的Annotation只能修饰包定义。 ElementType.PARAMETER: 指定该策略的Annotation可以修饰参数。 ElementType.TYPE: 指定该策略的Annotation可以修饰类、接口(包括注释类型)或枚举定义。