• Java元注解


    JDK从1.5开始提供注解,除了内置注解,还有4个元注解用了定义和解释注解

    第一个 @Target

    标志注解可以在那些地方可以使用

    public enum ElementType {
        /** Class, interface (including annotation type), or enum declaration */
        TYPE,      //:用于描述类、接口(包括注解类型) 或enum声明
    
        /** 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, //1.8版本开始,描述类、接口或enum参数的声明
    
        /**
         * Use of a type
         *
         * @since 1.8
         */
        TYPE_USE  //:1.8版本开始,描述一种类、接口或enum的使用声明
    }

    第二个:@Retention 

    描述注解的生命周期,表示需要在什么级别保存该注解,即保留的时间长短。取值类型(RetentionPolicy)有以下几种:

      SOURCE:在源文件中有效(即源文件保留)
      CLASS:在class文件中有效(即class保留)
      RUNTIME:在运行时有效(即运行时保留)
    
    
    第三个:@Documented
    描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。它是一个标记注解,没有成员。

    第四个:@Inherited

    用于表示某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。





     

    怕什么真理无穷,进一寸有一寸的欢喜!
  • 相关阅读:
    favourite programming quotes
    a fast algorithm to compute the area of a polygon
    customize your own memory allocator (2)
    一道概率算法
    study on source code of Tcmalloc
    智力题2
    how does malloc/free work?
    Windows PowerShell系列课程(视频课程讲师:李大川)
    跟我一起学Visual Studio 2008系列课程(视频课程讲师:徐长龙)
    C# 3.0 锐利体验系列课程(视频课程讲师:李建忠)
  • 原文地址:https://www.cnblogs.com/wyk96/p/13578080.html
Copyright © 2020-2023  润新知