首页 > 其他 > 详细

元注解

时间:2016-12-22 11:13:56      阅读:199      评论:0      收藏:0      [点我收藏+]

元注解

  就是只能用来注释普通注解的注解,不能直接注解代码。

    Java5时支持5中注解  @Dcocumented  @Retention  @Target  @Inherited

   @Documented

    被修饰的注解能够自动加入到javadoc中

    @Retention

    用来设置注解的级别

    @Retention(RetentionPolicy.CLASS)

    RetentionPolicy是enum类型的

    有三个级别

    RetentionPolicy.CLASS

        CLASS代表字节码级别的,注解从在于源码和自己吗文件中,

    RetentionPolicy.SOURCE

        代表源码级别的,只能存在于源码中,主要功能用于和与编译器交互和代码检测。@Override,@SuppressWarings,这个级别的框架额外效率损耗发生在编译时。

    RetentionPolicy.RUNTIME

        Runtime代表运行时级别,注解存在于源码,字节码,java虚拟机中,主要用于运行时反射获取相关的信息,这个级别的框架额外的效率损耗发生在程序运行时。

 

    @Target

    不加元注解@Target的情况下,注解可以修饰多种元素,类,属性,方法等。要是想限定注解的使用范围需要加入@Target注解

    @Target(ElementType.METHOD)

    ElementType.ANNOTATION_TYPE

            能修饰注解

    ElementType.CONSTRUCTOR

            能修饰构造器

    ElementType.FIELD

            能修饰成员变量

    ElementType.LOCAL_VARIABLE

            能够修饰局部变量

    ElementType.METHOD

            能够修饰方法

    ElementType.PACKAGE

            能够修饰包

    ElementType.PARAMETER

            能够修饰参数

    ElementType.TYPE

            能够修饰类,接口,枚举类型  

 

    可以是多个

    @Target({ElementType.TYPE,ElementType.FIELD})

    可以是单个

    @Target(ElementType.TYPE)

   @Inherited

    让注解可以被继承,但不是真正的继承。通过使用@Inherited,只可以让子类的类对象使用getAnnotations()反射获取父类被@Inherited修饰的注解

 

元注解

原文:http://www.cnblogs.com/zhyonk/p/6209920.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!