美文网首页知识点
分享:自定义JAVA注解

分享:自定义JAVA注解

作者: 95a6af369245 | 来源:发表于2019-02-19 15:44 被阅读215次

      元注解

      元注解指用来定义注解的注解,例如:@Retention @Target Inherited @Documented等等。最为重要和经常使用的是@Retention @Target。

      @Retention

      @Retention用于定义注解生效的返回,取值类型为RetentionPolicy。RetentionPolicy是一个枚举类,定义了三种值:

      SOURCE:注解只存在源码中,编译后就回被消除,例如:@Override @SuppressWarnings等。

      CLASS:注解存在于源码和编译后的字节码文件中,但是运行时无法获取注解信息。

      RUNTIME:注解在运行时仍然生效,例如@Deprecated等。

      @Target

      @Target用于定义注解作用的对象,取值类型为ElementType。ElementType是一个枚举类,定义了一下几种值:

      TYPE:作用在类、接口和枚举。

      FIELD:作用在属性上,包括枚举变量的常量属性。

      METHOD:作用在方法。

      PARAMETER:作用在方法中参数。

      CONSTRUCTOR:作用在构造方法。

      LOCAL_VARIABLE:作用在局部变量。

      ANNOTATION_TYPE:作用在注解类型。

      PACKAGE:作用在包。

      注解定义

      JAVA注解使用@interface定义,基本的形式如下:

      @Target({ElementType.METHOD})

      @Retention(RetentionPolicy.RUNTIME)

      public @interface RuntimePrinter {

      String name;

      }

      注解解析

      注解解析使用JAVA反射机制,在Class、Field类中有如下方法,经常被使用在注解解析中。

      isAnnotationPresent:是否存在制定注解

      getAnnotation:获取标注的注解对象

    相关文章

      网友评论

        本文标题:分享:自定义JAVA注解

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