`
wisfly
  • 浏览: 60578 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

java注解(四种元注解:@Retention @Target @Document @Inherited)

阅读更多

转:

小伙伴们,我开了一家海淘护肤品淘宝店,搜索店铺“禾子蝶的海淘铺”,欢迎进店选购哦。谢谢!

 

java中元注解有四个: @Retention @Target @Document @Inherited;

   @Retention:注解的保留位置         

      @Retention(RetentionPolicy.SOURCE)   //注解仅存在于源码中,在class字节码文件中不包含
      @Retention(RetentionPolicy.CLASS)     // 默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得,
      @Retention(RetentionPolicy.RUNTIME)  // 注解会在class字节码文件中存在,在运行时可以通过反射获取到
  
  @Target:注解的作用目标
        
        @Target(ElementType.TYPE)   //接口、类、枚举、注解
        @Target(ElementType.FIELD) //字段、枚举的常量
        @Target(ElementType.METHOD) //方法
        @Target(ElementType.PARAMETER) //方法参数
        @Target(ElementType.CONSTRUCTOR)  //构造函数
        @Target(ElementType.LOCAL_VARIABLE)//局部变量
        @Target(ElementType.ANNOTATION_TYPE)//注解
        @Target(ElementType.PACKAGE) ///包   
 
     @Document:说明该注解将被包含在javadoc中
 
   @Inherited:说明子类可以继承父类中的该注解
 
举例:
        @Retention(RetentionPolicy.RUNTIME)
    @Target({ElementType.METHOD})
    public @interface AnnatDemo{
        public int value();
    }
以上代码定义了@AnnatDemo注解,作用目标是 用于对方法注解,并且保留在运行时的环境中,我们可以利用反射 获得一个方法上的注解  调用定义的方法,
 
比如@AnnatDemo 作用于以下方法:
public interface IClientProtocolEx extends IProtocol {
  int METHOD_START=0;
  @AnnatDemo(METHOD_START)
   public String say(String person);
}
 
那么可以利用以下代码进行反射:
        Class ipt=IClientProtocalEx.class;
   Method[] mts=ipt.getMethod();
         for(Method mt:mts)
   {
    AnnatDemo ad=mt.getAnnotation(AnnatDemo.class);//如果方法上  没有该注解  则返回null
           int value=ad.value();
       System.out.println("value:"+value);
   }
 
注解是用于建设基础jar包的一部分   项目都有自己的框架,若运用恰当,注解则为其中良好的一部分。
小伙伴们,我开了一家海淘护肤品淘宝店,搜索店铺“禾子蝶的海淘铺”,欢迎进店选购哦。谢谢!
分享到:
评论

相关推荐

    Java中三种标准注解和四种元注解.pdf

    Java5.0定义的元注解:  1.@Target,  2.@Retention,  3.@Documented,  4.@Inherited  这些类型和它们所⽀持的类在java.lang.annotation包中可以找到。下⾯我们看⼀下每个元注解的作⽤和相应分参数的使⽤说明。 ...

    31.1、自定义注解1

    注解可以包含与其绑定的元注解,元注解为注解提供信息,有四种元注解类型:包括@Retention @Target @Document @Inherited2、@t

    注解的使用 注释文档的生成

    默认注解:@Deprecated @Override ... 自定义注解:public @interface FirstAnno {} #@interface 元注解:加在自定义注解的类接口上 @Retention(RetentionPolicy.RUNTIME ) SOURCE 给编译器看的# 源码存在,字节码不...

    JavaSE-注解与反射(框架底层实现机制)

    @Retention:描述注解的生命周期,传入value参数指定 (runtime>class>sources) @Documented:是否生成注解在Javadoc种 @Inherited:子类可以继承父类的注解 自定义注解 @interface 注解名{} 属性为注解的参数:...

    观看韩顺平学习整理java的笔记到异常

    帮助大家复习java基础知识其中有 hashCode 2 toString 2 finalize 2 用已学知识做出简单的房屋出租系统 3 类方法使用注意事项和细节讨论 4 main()方法 4 代码块 4 代码块使用注意事项和细节 5 单例模式 6 final...

    Java注解之Retention、Documented、Inherited介绍

    主要介绍了Java注解之Retention、Documented、Inherited注解介绍,本文内容和相关文章是系列文章,需要的朋友可以参考下

    java元注解.docx

    在Java中,元注解(Meta-Annotation)是一种特殊类型的注解,用于注解其他注解。元注解提供对注解的元数据进行定义和控制的能力。Java中提供了几个预定义的元注解,用于定制和修改注解的行为。让我们详细介绍一下...

    鹦鹉:像鹦鹉一样学习Java;

    @Target :注解的目标,使用ElementType枚举,目标可以有多个,用{}表示@Retention :注解保留到什么时候,使用RetentionPolicy ,更改RetentionPolicy.CLASS @Documented :表示注解信息包含到生成的文档中@...

    JPA 和 注释文档

    使用:@注释名(注释属性名=与注释属性类型对应的值) 注释定义: @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnocation{ String value() default “默认值”; ...

    android 注解入门(Acitivity路由demo)

    近期接触了路由和模块间通信的内容,发现Java注解非常常用。 避免后面看各源码被其阻塞,大致了解了下,作此文记录之。 注解类型 @Target @Retention @Documented @Inherited @Target 用于描述注解的使用范围,可能...

    java8源码-Annotation_demo:Annotation_demo

    在进行了解注解时我们先来了解一下,一般注解主要包含以下几个重要的注解元,java注解的机制离不开这几个注解元。 注解元 介绍<功能> 1.@Target 注解用于什么地方,下面会介绍 2.@Retention 什么时候使用该注解 3...

    Java版水果管理系统源码-huihe_2020summer:2020假期spring学习,vue留给你们了,有兴趣自己可以看官方文档,中文很

    元注解)是: @Retention - 标识这个注解怎么保存,是只在代码中,还是编入class文件中,或者是在运行时可以通过反射访问。 @Documented - 标记这些注解是否包含在用户文档中。 @Target - 标记这个注解应该是哪种 Java...

    SpringBoot框架开发常用注解

    推荐新手java工程师+SpringBoot框架开发中常用注解,SpringBoot入门级必读 @EnableScheduling @EnableTransactionManagement @Configuration @bean @JmsListener @Deprecated @XStreamAlias @EnableAync ...

    Java语言高级部分之注解是什么?

    元注解(JDK的元Annotation)4.1.@Target4.2.@Retention4.3.@Documented4.4.@Inherited4.5.@Result四、在程序中使用(解析)注解五、案例——简单的测试框架 一、注解是什么?  从JDK5开始,Java增加对元数据的支持...

    java7源码-AnnotationDemo:Android/Java编译时注解处理Demo。用于自动生成工厂代码

    java7 源码 写在前面: 越来越多的Android框架都使用了注解来实现,如有名ButterKnife、Dagger2都是用编译时注解来...该注解用于编译时使用,生命周期由@Retention指定,@Taget表示该注解的使用范围,这里用于注解类、

    Java内功修炼系列:注解(Annotation)

    四 Java 预置的注解 4.1 @Deprecated 4.2 @Override 4.3 @SuppressWarnings 4.4 @SafeVarargs 4.5 @FunctionalInterface 五 注解的属性 5.1 属性的定义 5.2 注解的提取 六 注解的使用场景 七 注解实战之简易测试...

    Java注解的Retention和RetentionPolicy实例分析

    主要介绍了Java注解的Retention和RetentionPolicy,结合实例形式分析了Java注解Retention和RetentionPolicy的基本功能及使用方法,需要的朋友可以参考下

    \java超强笔记(超级经典)

    四种元注释:java.lang.annotation中的类 元注释:注释注释的注释,用来限定注释的特征 @Terget 用来限定某个注释的使用范围,可以对什么元素进行注释 @Retention 用来描述注释的有效范围 @Inherited ...

    day021-反射和注解笔记和代码.rar

    1. 反射: Class 类的实例表示正在运行的 Java... 例如:@Target(ElementType.METHOD)//意味着@Override只能在普通方法上使用 public @interface Override { } 2. @Retention

    注解处理器

    在上一章,我在成员变量...我们常用的两种是 @Target 和 @Retention属性。 @Target 该元注解用来声明和限定注解使用的地方。 给整个类添加注解 给类中成员变量添加注解 给类中构造方法添加注解 给类中普通方法添加注解

Global site tag (gtag.js) - Google Analytics