Java中自定义注解

108 阅读1分钟

java中所有的元注解都定义在java.lang.annotation包下

一:提供了四种元注解

  1. @Documented:指定被标注的注解会包含在javadoc中。
  2. @Retention: 指定注解的生命周期(源码、class文件、运行时)
  • RetentionPolicy .SOURCE : 在编译阶段丢弃
  • RetentionPolicy .CLASS : 在类加载的时候丢弃
  • RetentionPolicy .RUNTIME : 始终不会丢弃,运行期也保留该注解,因此可以使用反射机制读取该注解的信息。我们自定义的注解通常使用这种方式。
    3: @Target:指定注解使用的目标范围(类、方法、字段等)
● ElementType.**CONSTRUCTOR :**用于描述构造器。

● ElementType.FIELD :成员变量、对象、属性(包括enum实例)。

● ElementType.LOCAL_VARIABLE: 用于描述局部变量。
 ElementType.**METHOD :** 用于描述方法。
● ElementType.PACKAGE :用于描述包。

● ElementType.PARAMETER:用于描述参数。

● ElementType.**ANNOTATION_TYPE**:用于描述参数

● ElementType.**TYPE :**用于描述类、接口(包括注解类型) 或enum声明。

4:@Inherited:指定子类可以继承父类的注解,只能是类上的注解,方法和字段的注解不能继承。

二:jdk1.8又提供了以下两个元注解

5:@Native: 指定字段是一个常量,其值引用native code。

6:@Repeatable: 注解上可以使用重复注解,即可以在一个地方可以重复使用同一个注解,像spring中的包扫描注解就使用了这个。

7:使用 ** @interface ** 关键词来定义注解。