自定义JAVA注解
元注解
元注解指用来定义注解的注解,例如:@Retention
@Target
Inherited
@Documented
等等。最为重要和经常使用的是@Retention
@Target
。
@Retention
@Retention
用于定义注解生效的返回,取值类型为RetentionPolicy
。RetentionPolicy
是一个枚举类,定义了三种值:
SOURCE
:注解只存在源码中,编译后就回被消除,例如:@Override
@SuppressWarnings
等。CLASS
:注解存在于源码和编译后的字节码文件中,但是运行时无法获取注解信息。RUNTIME
:注解在运行时仍然生效,例如@Deprecated
等。
@Target
@Target
用于定义注解作用的对象,取值类型为ElementType
。ElementType
是一个枚举类,定义了一下几种值:
TYPE
:作用在类、接口和枚举。FIELD
:作用在属性上,包括枚举变量的常量属性。METHOD
:作用在方法。PARAMETER
:作用在方法中参数。CONSTRUCTOR
:作用在构造方法。LOCAL_VARIABLE
:作用在局部变量。ANNOTATION_TYPE
:作用在注解类型。PACKAGE
:作用在包。
注解定义
JAVA注解使用@interface
定义,基本的形式如下:
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface RuntimePrinter {
String name;
}
注解解析
注解解析使用JAVA反射机制,在Class
、Field
类中有如下方法,经常被使用在注解解析中。
isAnnotationPresent
:是否存在制定注解getAnnotation
:获取标注的注解对象
相关文章