注解是JDK 1.5中引入的,可以提供代码的额外信息。
元注解
元注解的作用就是负责注解其他注解,Java定义了4个标准的元注解类型:
- @Target
- @Retention
- @Documented
- @Inherited
@Target
@Target说明了注解所修饰的对象范围,ElementType取值:
- CONSTRUCTOR: 用于描述构造器;
- FIELD: 用于描述域;
- LOCAL_VARIABLE: 用于描述局部变量;
- METHOD: 用于描述方法;
- PACKAGE: 用于描述包;
- PARAMETER: 用于描述参数;
- TYPE: 用于描述类、接口(包括注解类型)或enum声明;
- ANNOTATION_TYPE: 用于注解。
@Retention
@Retention定义了该注解被保留的时间长短,用于描述注解的生命周期,RetentionPolicy取值:
- SOURCE: 在源文件中有效(即源代码中保留,被编译器丢弃);
- CLASS: 在class文件中有效;
- RUNTIME: 在运行时有效(注解处理器可以通过反射获取注解的属性值)。
@Documented
@Documented用于描述注解可以文档化JavaDoc,是一个标记注解,没有成员。
@Inherited
@Inherited是一个标记注解,表示被注解的类,其子类会自动继承该注解。
自定义注解
使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口,由编译程序自动完成其他细节。在定义注解时,不能继承其他的注解或接口。
@interface用来声明一个注解,其中的每一个方法实际上是声明了一个配置参数。
方法的名称就是参数的名称,注解的方法修饰符只能是public或默认;返回值类型就是参数的类型,可以通过default来声明参数的默认值。
注解参数的可支持数据类型:
- 所有基本数据类型(int,float,boolean,byte,double,char,long,short)
- String类型
- Class类型
- enum类型
- Annotation类型
- 以上所有类型的数组
|
|
|
|