主要从三部分学习:
1. java提供的元注解
2. 自定义注解
3.注解的实际应用
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 java提供的元注解(java.lang.annotation包)
(1)@Target:被描述的注解可以用在什么地方【例如:@Target(ElementType.TYPE)】
取值(ElementType)有:
CONSTRUCTOR:用户描述构造器
FIELD:字段、枚举的常量
METHOD:方法
PACKAGE:包
TYPE:类、接口、枚举
PARAMETER:参数
LOCAL_VARIABLE:局部变量
(2)@Retention:注解的生命周期、被描述的注解在什么范围内有效。【@Retention(RetentionPolicy.RUNTIME)】
取值(@RetentionPolicy)有:
SOURCE:注解仅存在于源码中,在class字节码文件中不存在。
CLASS:默认的保留策略,注解会在class字节码文件中存在,但运行时无法获取
RUNTIME:注解在class文件字节码中存在,并且在运行时可以通过反射获取到。
(3)@Documented:该注解可以被包含在javadoc中。仅仅是一个标记注解,没有成员。
(4)@Inherited:是一个标记注解。子类可以继承父类中的该注解。
2 自定义注解
在eclipse通过 “项目右键”-----------“new”----------------"Annotation",创建自定义注解,如下:
自定义注解格式:
public @intergface 注解名{
//注解定义体
}
使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口,由编译程序自动完成,(因此在自定义注解的时候不能继承其它注解或者类)。
注解参数的可支持数据类型:
所有基本数据类型、String类型、Class类型、enum类型、Annotation类型、以上所有类型的数组。
注解元素必须有确定的值,要么在定义注解的默认值中指定,要么在使用注解时指定,使用空字符串或者0做为默认值是一种常用的做法。
3 注解的实际应用
针对注解的响应是关键。