码迷,mamicode.com
首页 > 其他好文 > 详细

Annotation

时间:2018-07-09 22:26:39      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:ring   long   ado   null   span   保留   重复   ant   java api   

 

    java api中的介绍

Annotation Types Summary
Annotation TypeDescription
Documented
Indicates that annotations with a type are to be documented by javadoc and similar tools by default.
Inherited
Indicates that an annotation type is automatically inherited.
Native
Indicates that a field defining a constant value may be referenced from native code.
Repeatable
The annotation type java.lang.annotation.Repeatable is used to indicate that the annotation type whose declaration it (meta-)annotates is repeatable.
Retention
Indicates how long annotations with the annotated type are to be retained.
Target
Indicates the contexts in which an annotation type is applicable.

    

@Documented

  是否将注解信息添加到javadoc中,默认添加

@Inherited

   子类可以继承父类中的注解

@Native

   常量值类型的字段可能会被从Native Code(二进制文件?)调用。

@Repeatable

  表示注解可以重复被使用

@Retention

  表示注释存在的方式,也就是生命周期

  1、源码级别(SOURCE)

    Annotation只存在于源码之中,编译之后不会保留。

  2、字节码文件级别(CLASS)

    Annotation的默认级别,执行时不会加载到JVM虚拟机,存在于源码、字节码文件中。

  3、运行级别(RUNTIME)

    会加载到JVM虚拟机中,可以通过反射机制读取注解的信息。

  在Enum类RetentionPolicy中。

@Target

  注释在哪使用

  ElementType是枚举类型

public enum ElementType {
    /**标明该注解可以用于类、接口(包括注解类型)或enum声明*/
    TYPE,

    /** 标明该注解可以用于字段(域)声明,包括enum实例 */
    FIELD,

    /** 标明该注解可以用于方法声明 */
    METHOD,

    /** 标明该注解可以用于参数声明 */
    PARAMETER,

    /** 标明注解可以用于构造函数声明 */
    CONSTRUCTOR,

    /** 标明注解可以用于局部变量声明 */
    LOCAL_VARIABLE,

    /** 标明注解可以用于注解声明(应用于另一个注解上)*/
    ANNOTATION_TYPE,

    /** 标明注解可以用于包声明 */
    PACKAGE,

    /**
     * 标明注解可以用于类型参数声明(1.8新加入)
     * @since 1.8
     */
    TYPE_PARAMETER,

    /**
     * 类型使用声明(1.8新加入)
     * @since 1.8
     */
    TYPE_USE
}

 

注解支持的元数据类型

  • 所有基本数据类型
  • String
  • Class
  • enum
  • Annotation
  • 上述类型的数组  

编译器对Annotation默认值的限制

  • 元素不能有不确定的值
  • 默认值不能为null,可以为空字符串。

注解不支持继承,因为注解在编译之后默认是继承Annotation的

注解中的名为value的元数据可以快捷赋值

 

Annotation

标签:ring   long   ado   null   span   保留   重复   ant   java api   

原文地址:https://www.cnblogs.com/zhyonk/p/9281525.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!