美文网首页
Java 元注解

Java 元注解

作者: Leero丶 | 来源:发表于2018-12-12 16:43 被阅读0次

学习Android APT需要我们具备自定义注解以及注解处理器的相关知识,这里简单介绍下Java元注解。注解是在JDK1.5后引入的,包含了4种元注解:@Target @Retention @Documented @Inherited
1. @Target
用于声明注解的作用位置,即使用对象。在下面的 ElementType 枚举中我们可以清楚看到 @Target 所能接受的值以及对应的使用范围。其中需要注意的是TYPE_PARAMETERTYPE_USE是在JDK 1.8后引入的。

public enum ElementType {
    /** Class, interface (including annotation type), or enum declaration */
    TYPE,

    /** Field declaration (includes enum constants) */
    FIELD,

    /** Method declaration */
    METHOD,

    /** Formal parameter declaration */
    PARAMETER,

    /** Constructor declaration */
    CONSTRUCTOR,

    /** Local variable declaration */
    LOCAL_VARIABLE,

    /** Annotation type declaration */
    ANNOTATION_TYPE,

    /** Package declaration */
    PACKAGE,

    /**
     * Type parameter declaration
     *
     * @since 1.8
     */
    TYPE_PARAMETER,

    /**
     * Use of a type
     *
     * @since 1.8
     */
    TYPE_USE
}

2. @Retention
用于声明注解的保留范围,相当于作用域,即在什么时候可以使用。
SOURCE表示该注解只能保留在源代码中,在编译时会被丢弃,不会在class字节码文件中出现
CLASS表示该注解可以保留在class字节码文件中,即编译时可用
RUNTIME表示该注解可在代码运行时保留,可以通过反射获得

public enum RetentionPolicy {
    /**
     * Annotations are to be discarded by the compiler.
     */
    SOURCE,

    /**
     * Annotations are to be recorded in the class file by the compiler
     * but need not be retained by the VM at run time.  This is the default
     * behavior.
     */
    CLASS,

    /**
     * Annotations are to be recorded in the class file by the compiler and
     * retained by the VM at run time, so they may be read reflectively.
     *
     * @see java.lang.reflect.AnnotatedElement
     */
    RUNTIME
}

3. @Documented
表示拥有该注解的元素可以被 javadoc 这类的工具文档化。

4.@Inherited
表示允许子类继承父类中的注解。

相关文章

  • 1.8 Java 注解annotation

    1.1 注解声明 Java注解Annotation,有声明注解和元注解 元注解:Java提供的元注解,所谓元注解就...

  • Java注解(三)—元注解

    元注解就是注解的注解,是Java内置的注解。Java提供四个元注解:@Retention @Target @Doc...

  • JavaSE进阶-注解:JavaSE元注解和JavaEE原生注解

    JavaSE元注解 在注解定义时,用在注解头部的注解,称为元注解,目前元注解在java.lang.annotati...

  • 自定义注解

    java annotation基础 java注解分为标准注解和元注解。 标准注解是java为我们提供的预定义的注解...

  • Java Annotation注解

    1 Java 元注解 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotatio...

  • java - 注解

    1. 元注解 元注解:用在注解上的注解,java1.5后添加的4个元注解: @Target @Retention ...

  • Java注解

    Java注解 1.注解的语法 2.元注解 2.1 元注解列表 元注解含义选项@Retention标识注解的存活阶段...

  • Java注解总结(史上最全,有这一篇就够了)

    什么是注解? 注解的定义 官网描述如下: Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影...

  • 注解的使用

    元注解 注解 注解本质就是接口: 元注解:修饰注解的注解 自定义注解 Text.java FruitName.ja...

  • 10 Dagger2

    1 注解 1.1 注解的定义 Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执...

网友评论

      本文标题:Java 元注解

      本文链接:https://www.haomeiwen.com/subject/ieqphqtx.html