- 浏览: 1341937 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (453)
- Struts2 (4)
- Struts1 (16)
- Spring (9)
- Hibernate (5)
- AJAX (16)
- MS Server (9)
- Oracle (35)
- 测试技术 (5)
- 其他 (37)
- JSF (1)
- EJB (5)
- ASP.NET (9)
- iBATIS (5)
- Struts Spring Hibernate (2)
- HTML (12)
- Eclipse使用 (5)
- 设计模式 (5)
- JSP (32)
- 正则表达式 (2)
- 服务器 (12)
- Java基础 (48)
- MySQL (4)
- 面试 (22)
- UML (1)
- 数据结构 (3)
- Ant (2)
- 规范 (4)
- JavaScript (29)
- 软件使用及技巧 (25)
- PHP (1)
- DWR (3)
- FreeMarker (1)
- ExtJs (17)
- JFreeChart (9)
- Reports (2)
- JavaException (1)
- Java Mail (1)
- Flex (9)
- 异常 (12)
- Log4j (2)
- WebService (1)
- jQuery (1)
- Sybase (2)
- myeclipse_plugin (2)
- Linux (5)
- jbpm (2)
- SCM (1)
- mongoDB (1)
最新评论
-
lihua2008love:
<typeAlias alias="User& ...
IBATIS简单操作 -
lihua2008love:
...
关于项目框架设计的一点学习 -
c_jinglin:
我使用<OBJECT CLASSID="cls ...
这就是个静态页面通过js控制mscomm对某com设备进行访问的例子. -
zlbjava:
赞,用了还不错
java获取请求的ip地址,并解析ip所属地区 -
完美天龙:
cs842813290 写道楼主,我明白的地方:在链表已有N个 ...
JAVA实现双向链表
告知编译程序如何处理@Retention:
java.lang.annotation.Retention型态可以在您定义Annotation型态时,指示编译程序该如何对待您的自定义Annotation型态。
预定义上编译程序会将Annotation信息留在.class文档中,但不被虚拟机读取,而仅用于编译程序或工具程序运行时提供信息。
java.lang.annotation.RetentionPolicy 有三个枚举类型:CLASS、RUNTIME、SOURCE
只有当Annotation被指示成RUNTIME时,在运行时通过反射机制才能被JVM读取,否则,JVM是读取不到这个Annotation的。
java 代码
- package com.test;
- import java.lang.annotation.Retention;
- import java.lang.annotation.RetentionPolicy;
- @Retention(RetentionPolicy.RUNTIME)
- public @interface RetentionTest {
- String hello() default "hello";
- String world();
- }
java 代码
- package com.test;
- public class MyTest {
- @RetentionTest(hello = "beijing", world = "shanghai")
- @Deprecated
- @SuppressWarnings("unchecked")
- public void output()
- {
- System.out.println("output");
- }
- }
java 代码
- package com.test;
- import java.lang.annotation.Annotation;
- import java.lang.reflect.Method;
- public class ReflectRetentionTest {
- public static void main(String[] args) throws Exception{
- MyTest mt = new MyTest();
- Class c = MyTest.class;
- Method method = c.getMethod("output",new Class[]{});
- if(method.isAnnotationPresent(RetentionTest.class))
- {
- method.invoke(mt, new Object[]{});//output
- RetentionTest retentionTest = method.getAnnotation(RetentionTest.class);
- System.out.println(retentionTest.hello());//beijing
- System.out.println(retentionTest.world());//shanghai
- }
- Annotation[] annotations = method.getAnnotations();
- for(Annotation annotation: annotations)
- {
- System.out.println(annotation.annotationType().getName());
- }
- //for循环里输出的结果是com.test.RetentionTest以及java.lang.Deprecated,而没有出来java.lang.SuppressWarnings
- //因为java.lang.SuppressWarnings的Retention是被设置成RetentionPolicy.SOURCE类型的,所以在运行时是不会被虚拟机读取的。
- }
- }
发表评论
-
项目中用到的数字证书的创建,签名实现
2012-07-15 20:17 2184首先 需要下载jar包 bcprov-jdk15-145.ja ... -
DecimalFormat的用法介绍
2012-02-06 14:16 2451import java.text.*; import ... -
tomcat,jdk,maven环境变量配置(备忘)
2011-12-25 10:24 1378环境变量: CATALINA_HOME D:\P ... -
java获得指定时间几天前或几天后的日期
2010-01-14 09:28 8828/** * 得到几天前的时间 * * ... -
动态读取配置文件
2009-08-04 11:30 2487import java.io.File; import ja ... -
JAVA对数字证书的常用操作
2009-07-12 18:42 1432一需要包含的包 import java.security.* ... -
签字证书例子
2009-07-12 18:31 1616import java.io.FileInputStr ... -
list,set,map,数组间的相互转换
2009-07-01 16:10 28681.list转set Set set = new HashSe ... -
动态运行Java代码
2009-07-01 14:08 1419有些情况下,我们不得不动态运行Java代码,以便提供更加灵活的 ... -
防止java反编译的一些常用方法
2009-02-12 14:33 21011.隔离Java程序 最 ... -
操作数组
2009-01-20 12:48 1249List list1 = new ArrayList() ... -
java写入文件时庄和薛字的问题
2008-12-26 10:47 1489今天碰到一个很有意思的问题,当写入文件是庄或薛的时候,就会出现 ... -
Hessian的学习笔记
2008-12-01 12:20 12311- 整个jar很小,200多K,3.1版本的,当然,我下载的 ... -
编写一个Java程序,对指定文本进行数字签名(文本随意)
2008-10-08 14:12 2854一:需要包含的包 import java.security. ... -
java的property配置文件的用法
2008-07-29 16:26 1748package configuration; ... -
统一异常处理
2008-07-16 16:47 1963package com.bjsxt.oa.manager; ... -
Java反射机制之代理模式
2008-07-02 23:12 1551代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问 ... -
java.lang.reflect.Array的应用
2008-07-02 23:11 1872java.lang.Array 类提供了动态创建和访问数组元 ... -
Java语言的反射机制
2008-07-02 23:10 1661在JAVA运行环境中,对 ... -
@Documented Annotation的使用
2008-07-02 23:09 2469@Documented Annotation的使用: @Do ...
相关推荐
@Retention(RetentionPolicy.RUNTIME ) SOURCE 给编译器看的# 源码存在,字节码不存在 CLASS 给虚拟机的类加载器看的,#源码,.class存在, RUNTIME 用于反射 #源码,.class 字节码 存在 @Documented 这个注解可以...
主要介绍了Java注解之Retention、Documented、Inherited注解介绍,本文内容和相关文章是系列文章,需要的朋友可以参考下
SRAM retention testing
帮助大家复习java基础知识其中有 hashCode 2 toString 2 finalize 2 用已学知识做出简单的房屋出租系统 3 类方法使用注意事项和细节讨论 4 main()方法 4 代码块 4 代码块使用注意事项和细节 5 ...异常处理 2
前言 Spring 框架学习,完全弃用 XML 配置。 ch1 ch1-1 使用 Spring 注解声明实体类,相关注解为 @controller 、@servies、@respository、@...@Retention(RetentionPolicy.CLASS) 默认的保留策略,注解在 class 字节
达梦修改UNDO_RETENTION.zip
推荐新手java工程师+SpringBoot框架开发中常用注解,SpringBoot入门级必读 @EnableScheduling @EnableTransactionManagement @Configuration ... @Retention @Target @interface @componen @Resource
注解可以包含与其绑定的元注解,元注解为注解提供信息,有四种元注解类型:包括@Retention @Target @Document @Inherited2、@t
java7 源码 写在前面: 越来越多的Android框架都使用了注解来实现,如有名ButterKnife、Dagger2都是用编译时注解来...该注解用于编译时使用,生命周期由@Retention指定,@Taget表示该注解的使用范围,这里用于注解类、
Data Retention Time and Electrical Characteristics of Cell Transistor According to STI Materials in 90 nm DRAM
@Retention - 标识这个注解怎么保存,是只在代码中,还是编入class文件中,或者是在运行时可以通过反射访问。 @Documented - 标记这些注解是否包含在用户文档中。 @Target - 标记这个注解应该是哪种 Java 成员。 @...
2.2RetentionPolicy类RetentionPolicy枚举类型中的常量与@Retention注解搭配使用,用于指定其他注解的保留时间,即保留策略:
@Retention:这个元注解用于指定被注解的注解的保留策略。它有一个RetentionPolicy枚举类型的属性value,可以取以下三个值: RetentionPolicy.SOURCE:注解仅保留在源代码中,编译后会被丢弃。 RetentionPolicy....
2.@Retention, 3.@Documented, 4.@Inherited 这些类型和它们所⽀持的类在java.lang.annotation包中可以找到。下⾯我们看⼀下每个元注解的作⽤和相应分参数的使⽤说明。 @Target: @Target说明了...
作者:Conner Fromknecht (conner@mit.edu), Dragos Velicanu (velicanu@mit.edu), Sophia Yakoubov (sonka89@mit.edu)
@Retention(RetentionPolicy.RUNTIME) public @interface MyAnnocation{ String value() default “默认值”; String [] name(); } 引用: @MyAnnocation(value="",name={"李白","杜甫"}) 系统注释: 过时修饰: ...
概述 前一篇文章已经整理过注解的一些概念,也是附上了运行时注解的Demo,如果对注解概念不是很熟的读者建议先看下前一篇文章:android 注解入门(Acitivity路由demo) 此篇文章主要讲一下编译时注解的...@Retention
@Retention @Documented @Inherited @Target 用于描述注解的使用范围,可能的ElementType参数如下: CONSTRUCTOR:用于描述构造器 FIELD:用于描述域 LOCAL_VARIABLE:用于描述局部变量 METHOD:用于描述方法 PACKAGE:...
利用spring如何实现接口限流 ...@Retention(RetentionPolicy.RUNTIME) public @interface AccessLimit { //限流唯一标识 String key() default ""; //限流时间 int time(); //限流次数 int count(); }
@Retention:描述注解的生命周期,传入value参数指定 (runtime>class>sources) @Documented:是否生成注解在Javadoc种 @Inherited:子类可以继承父类的注解 自定义注解 @interface 注解名{} 属性为注解的参数:...