java元注解 @Retention注解使用

@Retention定义了该Annotation被保留的时间长短:

1.某些Annotation仅出现在源代码中,而被编译器丢弃;

2.另一些却被编译在class文件中,注解保留在class文件中,在加载到JVM虚拟机时丢弃,这是默认行为,所以没有用Retention注解的注解,都会采用这种策略

3.而另一些在class被装载时将被读取,注解保留在程序运行期间,此时可以通过反射获得定义在某个类上的所有注解

  作用:表示需要在什么级别保存该注释信息,用于描述注解的生命周期(即:被描述的注解在什么范围内有效)

  取值(RetentionPoicy)有:

    1.SOURCE:在源文件中有效(即源文件保留)
    2.CLASS:在class文件中有效(即class保留)
    3.RUNTIME:在运行时有效(即运行时保留)

  Retention meta-annotation类型有唯一的value作为成员

它的取值来自java.lang.annotation.RetentionPolicy的枚举类型值。具体实例如下:

/** * 限流注解 */@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface RateLimit {    /**     * @return rate limit in queries per second     */    String value() default "";

double permits() default 1000;

}

 RateLimit 注解的的RetentionPolicy的属性值是RUNTIME,这样注解处理器可以通过反射,获取到该注解的属性值,从而去做一些运行时的逻辑处理

原文地址:https://www.cnblogs.com/unknows/p/10261667.html

时间: 2024-10-28 16:14:27

java元注解 @Retention注解使用的相关文章

java的四个元注解 @Retention @Target @Document @Inherited

1.  @Retention  :注解的保留位置 @Retention(RetentionPolicy.SOURCE)  //注解仅存在于源码中,在class字节码文件中不包含 @Retention(RetentionPolicy.CLASS)   //默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得 @Retention(RetentionPolicy.RUNTIOME)  //注解会在class字节码文件中存在,在运行时可以通过反射获取到 2.  @Target : 注解

Java元注解

元注解的作用是负责注解其他注解.Java定义了4中标准的元注解类型,他们被用来提供对其他注解的说明. @target @Retention @Documented @Inherited 这些类型可以和他们所支持的类在Java.lang.annotation包中找到 每个元注解的作用: @target 修饰了annotation所修饰的对象范围,annotation可被用于package,type(类,接口,枚举,annotation),和类型成员(方法,构造方法,成员变量,枚举值).方法参数和本

java 元注解

java元注解的作用是注解其他注解,java5.0定义了四个标准的元注解:@Target.@Retention.@Inherit.@Documented. 1)@Target:用于描述注解可以修饰的类型.其可选值为:(ElementType.TYPE) ANNOTATION_TYPE(注解类型声明) PACKAGE(包) TYPE(类.接口.枚举) METHOD(方法声明) FIELD(成员变量) LOCAL_VARIABLE(本地变量) CONSTRUCTOR(构造方法) 其代码如下: @Do

转:java 注解 @Retention @interface 元数据

原文: http://www.cnblogs.com/coolgun/p/3802535.html java注解 即是注释了,百度解释:也叫元数据.一种代码级别的说明. 个人理解:就是内容可以被代码理解的注释,一般是一个类. 元数据 也叫元注解,是放在被定义的一个注解类的前面 ,是对注解一种限制.只有两个: @Retention 和 @Target  (我只查到这两个). @Retention :用来说明该注解类的生命周期.它有以下三个参数: RetentionPolicy.SOURCE  :

java retention注解

Retention注解 Retention(保留)注解说明,这种类型的注解会被保留到那个阶段. 有三个值:1.RetentionPolicy.SOURCE —— 这种类型的Annotations只在源代码级别保留,编译时就会被忽略2.RetentionPolicy.CLASS —— 这种类型的Annotations编译时被保留,在class文件中存在,但JVM将会忽略3.RetentionPolicy.RUNTIME —— 这种类型的Annotations将被JVM保留,所以他们能在运行时被JV

java 注解@Retention @interface 元数据

原文  http://www.cnblogs.com/coolgun/p/3802535.html java注解 即是注释了,百度解释:也叫元数据.一种代码级别的说明. 个人理解:就是内容可以被代码理解的注释,一般是一个类. 元数据 也叫元注解,是放在被定义的一个注解类的前面 ,是对注解一种限制.只有两个: @Retention 和 @Target  (我只查到这两个). @Retention :用来说明该注解类的生命周期.它有以下三个参数: RetentionPolicy.SOURCE  :

Java元注解,简单案例

[注解] 程序中有 注释 和注解 * 注释:给开发人员. * 注解:给计算机看的. 注解使用:学习框架支持注解开发. [JDK提供的注解] @Override :描述方法的重写. @SuppressWarnings :压制警告. @Deprecated :标记过时. 自定义注解: 定义一个类:class 定义一个借口:interface 定义一个枚举:enum 定义一个注解:@interface 用法: @interface MyAnno1{ } 带有属性的注解: @interface MyAn

Java注解Retention、Documented、Target的含义

Retention注解 Retention(保留)注解说明,这种类型的注解会被保留到那个阶段. 有三个值: 1.RetentionPolicy.SOURCE -- 这种类型的Annotations只在源代码级别保留,编译时就会被忽略 2.RetentionPolicy.CLASS -- 这种类型的Annotations编译时被保留,在class文件中存在,但JVM将会忽略 3.RetentionPolicy.RUNTIME -- 这种类型的Annotations将被JVM保留,所以他们能在运行时

Java注解(1)-注解基础

注解(Annotation)是在JAVA5中开始引入的,它为在代码中添加信息提供了一种新的方式.注解在一定程度上把元数据与源代码文件结合在一起,正如许多成熟的框架(Spring)所做的那样.那么,注解到底可以做什么呢? 1.注解的作用. 提供用来完整地描述程序所需要的信息,如编译期校验程序信息. 生成描述符文件,或生成新类的定义. 减轻编写"样板"代码(配置文件)的负担,可以使用注解自动生成. 更加干净易读的代码. 编译期类型检查. 2.Java提供的注解 Java5内置了一些原生的注