- 浏览: 1358145 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 2246首先 需要下载jar包 bcprov-jdk15-145.ja ... -
DecimalFormat的用法介绍
2012-02-06 14:16 2507import java.text.*; import ... -
tomcat,jdk,maven环境变量配置(备忘)
2011-12-25 10:24 1437环境变量: CATALINA_HOME D:\P ... -
java获得指定时间几天前或几天后的日期
2010-01-14 09:28 8879/** * 得到几天前的时间 * * ... -
动态读取配置文件
2009-08-04 11:30 2514import java.io.File; import ja ... -
JAVA对数字证书的常用操作
2009-07-12 18:42 1461一需要包含的包 import java.security.* ... -
签字证书例子
2009-07-12 18:31 1649import java.io.FileInputStr ... -
list,set,map,数组间的相互转换
2009-07-01 16:10 29341.list转set Set set = new HashSe ... -
动态运行Java代码
2009-07-01 14:08 1444有些情况下,我们不得不动态运行Java代码,以便提供更加灵活的 ... -
防止java反编译的一些常用方法
2009-02-12 14:33 21211.隔离Java程序 最 ... -
操作数组
2009-01-20 12:48 1273List list1 = new ArrayList() ... -
java写入文件时庄和薛字的问题
2008-12-26 10:47 1512今天碰到一个很有意思的问题,当写入文件是庄或薛的时候,就会出现 ... -
Hessian的学习笔记
2008-12-01 12:20 12591- 整个jar很小,200多K,3.1版本的,当然,我下载的 ... -
编写一个Java程序,对指定文本进行数字签名(文本随意)
2008-10-08 14:12 2886一:需要包含的包 import java.security. ... -
java的property配置文件的用法
2008-07-29 16:26 1773package configuration; ... -
统一异常处理
2008-07-16 16:47 1986package com.bjsxt.oa.manager; ... -
Java反射机制之代理模式
2008-07-02 23:12 1582代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问 ... -
java.lang.reflect.Array的应用
2008-07-02 23:11 1906java.lang.Array 类提供了动态创建和访问数组元 ... -
Java语言的反射机制
2008-07-02 23:10 1696在JAVA运行环境中,对 ... -
@Documented Annotation的使用
2008-07-02 23:09 2490@Documented Annotation的使用: @Do ...
相关推荐
Retention注解用于定义一个注解的生存周期,即在程序的哪个阶段仍然有效。Java提供了三种RetentionPolicy策略: - `RetentionPolicy.SOURCE`:注解只存在于源代码阶段,编译后不会保留。这通常用于编译器的语法...
1. **了解业务需求**:首先,你需要理解你的应用程序的事务特性,包括平均事务持续时间、事务回滚频率等。这将帮助你确定合理的UNDO_RETENTION值。 2. **监控当前设置**:通过查询数据库的系统视图,你可以查看当前...
Java 元注解包括四大类:@Retention、@Target、@Documented、@Inherited 等。 1.@Retention @Retention 用于指定注解的保留期限,可以设置为 SOURCE、CLASS 或 RUNTIME。 * RetentionPolicy.SOURCE:注解只保留在...
编译时注解,顾名思义,就是这些注解在编译阶段起作用,它们对程序的运行时行为没有直接影响,但能帮助编译器进行检查或生成额外的辅助文件。 ## 1. 注解类型 Java中的注解分为三种类型:源码保留(Source ...
1. **编译时处理(Compile-Time Processing)**:通过`@Retention(RetentionPolicy.SOURCE)`或`@Retention(RetentionPolicy.CLASS)`指定注解只在源码或字节码阶段有效,常用于代码生成、格式检查等。Java编译器在...
3. 运行时注解,即标记为@Retention(RetentionPolicy.RUNTIME)的注解,这种注解既会在编译时被处理,也会在运行时被JVM保留,从而可以通过反射机制在程序运行期间访问和操作。 Java反射机制则允许在运行时动态地...
@Retention(RetentionPolicy.RUNTIME ) SOURCE 给编译器看的# 源码存在,字节码不存在 CLASS 给虚拟机的类加载器看的,#源码,.class存在, RUNTIME 用于反射 #源码,.class 字节码 存在 @Documented 这个注解可以...
Java 注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。 一、元注解 元注解是指注解的注解。包括 @...
1. **编译时处理**:通过`@Retention(RetentionPolicy.CLASS)`或`@Retention(RetentionPolicy.SOURCE)`,注解可以在编译时被处理。编译器可以检查注解并采取相应行动,例如,检查`@Override`是否真的重写了父类方法...
在实际编程中,这些元注解可以帮助我们更好地控制和利用自定义注解,实现如代码注释、编译时检查、运行时处理等多种功能。例如,通过`@Retention(RetentionPolicy.RUNTIME)`,我们可以编写代码在运行时通过反射机制...
在Java编程语言中,JDK 1.5引入了一项重要的新特性——注释(Annotations),这是一种元数据,用于提供程序元素(如类、方法、变量等)的附加信息。这些信息可以被编译器、IDE或其他工具用来验证代码、生成代码、...
Java自定义注解是Java语言中的一个重要特性,它允许开发者在代码中添加元数据,以提供额外的信息,比如编译时或运行时的处理规则。注解与传统的注释不同,注解可以被编译器或者JVM读取并执行相应的处理。在Java中,...
- 使用`@Processor`注解定义注解处理器,可以在编译时处理注解信息,例如代码生成、编译检查等。 - Java的`Processor`接口是JSR 269的一部分,实现了该接口的类会在编译期间被调用。 5. **注解的使用场景** - **...
在Java中,我们可以使用`@Retention(RetentionPolicy.SOURCE)`或`@Retention(RetentionPolicy.CLASS)`声明编译时注解。 接下来,我们来看如何实现`@BindView`和`@ContentView`这两个注解。`@BindView`用于将XML布局...
注解在Java中主要用来简化配置、提供编译时和运行时的元信息、实现自动化的处理任务等。 **注解的类型** 1. **源码级注解(Source-level Annotations)**:这些注解在编译期间由编译器处理,例如`@Override`用于...
要模拟实现这个功能,我们需要创建一个自定义注解,例如`@MyAutowired`,然后编写一个处理该注解的后处理器,使用Java的反射API来查找和注入依赖。 ```java @Retention(RetentionPolicy.RUNTIME) @Target(Element...
Annotation 是一个接口,程序可以通过反射来获取指定程序中元素的 Annotation 对象,然后通过该 Annotation 对象来获取注解中的元数据信息。 在 Java 中,Annotation 可以被用于提供元数据信息,例如:作者、版本号...
Java 注解(Annotation)是Java语言的一个重要特性,它为代码提供元数据,即关于代码的信息,但这些信息不直接影响程序的运行。注解在Java中主要用于编译器检查、运行时处理、框架生成元数据等场景。本篇将深入探讨...
注解本身并不会对程序的行为产生直接影响,它只是提供了额外的信息。通常需要通过反射机制来读取这些信息并执行相应的操作。例如: ```java public static void process(String str) throws ClassNotFoundException...