一,定义Annotation
使用@interface定义Annotation,就想创建class一样,四个元注解。
@Retention:作用时间,RetentionPolicy.RUNTIME是运行时。
@Target:作用范围,类,方法,成员变量。
取值(ElementType)有:
1.CONSTRUCTOR:用于描述构造器
2.FIELD:用于描述域
3.LOCAL_VARIABLE:用于描述局部变量
4.METHOD:用于描述方法
5.PACKAGE:用于描述包
6.PARAMETER:用于描述参数
7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
@Documented:这个注解应该被 javadoc工具记录。
@Inherited :继承。
二,提取信息
AnnotatedElement接口代表程序中可以接受注释的程序元素,调用AnnotatedElement对象的如下三个方法来访问Annotation信息:
getAnnotation(Class annotationClass):返回该程序元素上存在的、指定类型的注释,如果该类型的注释不存在,则返回null。
Annotation[] getAnnotations():返回该程序元素上存在的所有注释。
注解的信息主要通过反射机制来提取。