- 定义新的Annotation类型使用@interface关键字
- 自定义注解自动继承了java.lang.annotation.Annotation接口
- Annotation的成员变量在Annotation定义中已无参方法的形式来声明 其中方法名和返回值定义了该成员的名字和类型 我们称为配置参数 类型只能是八种基本数据类型、String、Class、enum、Annotation以上的所有类型的数组
- 方法名称 约等于成员变量名称
- 返回值 约等于成员变量类型
- 可以在定义Annotation的成员变量时为其指定初始值 指定成员变量的初始值使用defalut关键字
- 如果只有一个参数成员 建议使用value为参数名称
- 如果定义的注解含有配置参数 那么使用时必须指定参数值 除非它有默认值 格式时 参数名 = 参数值 如果他只有一个参数成员 且名称为value 可以省略 value=
- 没有成员定义的Annotation称为标记 包含成员变量的Annotation称为元数据Annotation
一、Jdk5.0提供的四个元注解以及Jdk8.0中的新特性
- @Retention 修饰当前注解的生命周期
- @Target 指定当前注解的修饰范围
- @Documented 被修饰的注解可以被javadoc生成
- @Inherited 被修饰的注解如果存在子类 那么子类默认继承当前注解
JDK8新特性
- 自定义注解
- @author LYY
- @Retention 指定注解生命周期
@Target 指定注解作用范围 */ @Inherited @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface MyAnnotation {
/**
- 只有一个成员变量 使用建议名称 value 指定默认值为 哈哈
- @return */ String value() default “哈哈”;
}
```