什么是注解
- Annotation是从JDK5.0开始引入的技术
- Annotation的作用:
- 不是程序本身,可以对程序作出解释
- 可以被其他的程序(如:编译器等)读取
元注解
- 元注解的作用就是负责注解其他注解,Java定义了4个标准的meta-annotation类型,他们被用来提供对其他annotation类型做说明
- 这些类型和它们所支持的类在 java.lang.annotation 包中可以找到(@Target,@Retention,@Documented,@Inherited)
@Target 注解:用于描述注解的适用范围(即:被描述的注解可以用在什么地方)
取值 | 注解使用范围 |
---|---|
METHOD | 可用于方法上 |
TYPE | 可用于类或者接口上 |
ANNOTATION_TYPE | 可用于注解类型上(被@interface修饰的类型) |
CONSTRUCTOR | 可用于构造方法上 |
FIELD | 可用于域上 |
LOCAL_VARIABLE | 可用于局部变量上 |
PACKAGE | 用于记录java文件的package信息 |
PARAMETER | 可用于参数上 |
@Retention 注解:表示需要在什么级别保存该注释信息,用于描述注解的生命周期
(SOURCE < CLASS < RUNTIME)
@Document 注解:说明该注解将被包含在 JAVAdoc 中
@Inherited 注解:说明子类可以继承父类中的注解
自定义注解
- 使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RelentionPolicy.RUNTIME)
@interface MyAnnotation{
//注解的参数 : 参数类型 + 参数名()
String name() default "myName"; //有默认值
int age(); //无默认值
}