public void initGetter(ActionInvocation invocation) {
HttpServletRequest request = ServletActionContext.getRequest();
Class actionClass = invocation.getAction().getClass();
Field[] fields = actionClass.getDeclaredFields();
for (Field field : fields) {
Annotation[] annotations = field.getDeclaredAnnotations();
for (Annotation annotation : annotations)
if (annotation instanceof GetterAndSetter) {
GetterAndSetter getterAndSetter = (GetterAndSetter)annotation;
field.setAccessible(true);
try {
Object value = field.get(invocation.getAction());
request.setAttribute(field.getName(), value);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
例子2:
/**
*
*/
package annotation;
import java.lang.annotation.Annotation;
import annotation.FirstTag.ALLNAME;
/**
* @author Qianmz
* @date Mar 26, 2010/11:10:56 PM
*/
public class TagClazz {
@FirstTag(name="Qianmz",id=1000,lastName=ALLNAME.ZHAO)
public void doExecute(){
}
public static void main(String[] args) {
TagClazz tc = new TagClazz();
try {
Annotation[] ann =
tc.getClass().getMethod("doExecute").getAnnotations();
for(Annotation an : ann){
System.out.println(an.getClass());
System.out.println(an.annotationType());
System.out.println(((FirstTag)an).name());
System.out.println(((FirstTag)an).id());
System.out.println(((FirstTag)an).lastName());
}
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}
}
================================
result:
interface annotation.FirstTag
Qianmz
1000
ZHAO
分享到:
相关推荐
文章目录Java ReflectionJava反射机制提供的功能Java反射相关的主要APIjava.lang.Class类Class类的核心要点Class类的重要API实例实例化Class类对象(四种方法)创建类对象并获取类的完整结构获取Class对象后创建类的...
通过自定义注解,反射等技术实现hibernate注解功能。单元测试可以直接跑,代码里的注释写的很清楚,欢迎下载参阅!
自定义注解,反射拼装查询,模拟实现hibernate的注解功能原理
Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在 java.lang.annotation 包中。注解...
一个简易的Android事件通知库,使用RxJava和Javassist设计,拒绝使用反射,保证性能高效稳定。 > 该项目是从RxUtil中分离出RxBus相关,并进行功能增强。如果你对RxJava的使用还不满足于RxBus, 你可以移步RxUtil和...
基于Java的XML解析与反射设计模式 摘要:随着计算机时代的蓬勃发展,internet的普及给社会以及人民的生活带来了巨 大的影响。与此同时,b/s结构的多系统相互访问技术应时代的发展也如雨后春笋般不断 涌现出来,相应...
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 1/15 页 1 1.1 利用 Java 实现地球系动画完整实现实例(第 3 部分) 1.1.1 进一步扩展程序加载图像文件 1、GUI 中显示...
javax.xml 根据 XML 规范定义核心 XML 常量和功能。 javax.xml.bind 为包含解组、编组和验证功能的客户端应用程序提供运行时绑定框架。 javax.xml.bind.annotation 定义将 Java 程序元素定制成 XML 模式映射的注释...
简单实现IOC功能 主要涉及反射与自定义注解的使用 @Bean 用于对象的自动创建 @Autowired 用于自动注入 Aware接口 用于在创建对象时候自动调用里面的方法 stn-apt 注解处理器学习使用,基于javapoet框架实现类的创建...
与以往的旧产品相比, PADS 9.0修复和改善了之前版本软件的不足和缺点,集成了许多全新的功能,拥有了更高的可扩展性和集成度,从而使设计者能够结合Mentor Graphics众多独特的创新技术,实现设计、分析、制造和多...
org.omg.CORBA 提供 OMG CORBA API 到 JavaTM 编程语言的映射,包括 ORB 类,如果已实现该类,则程序员可以使用此类作为全功能对象请求代理(Object Request Broker,ORB)。 org.omg.CORBA_2_3 CORBA_2_3 包定义对 ...
org.omg.CORBA 提供 OMG CORBA API 到 JavaTM 编程语言的映射,包括 ORB 类,如果已实现该类,则程序员可以使用此类作为全功能对象请求代理(Object Request Broker,ORB)。 org.omg.CORBA_2_3 CORBA_2_3 包定义对 ...
org.omg.CORBA 提供 OMG CORBA API 到 JavaTM 编程语言的映射,包括 ORB 类,如果已实现该类,则程序员可以使用此类作为全功能对象请求代理(Object Request Broker,ORB)。 org.omg.CORBA_2_3 CORBA_2_3 包定义对 ...
org.omg.CORBA 提供 OMG CORBA API 到 JavaTM 编程语言的映射,包括 ORB 类,如果已实现该类,则程序员可以使用此类作为全功能对象请求代理(Object Request Broker,ORB)。 org.omg.CORBA_2_3 CORBA_2_3 包定义对...
javax.xml 根据 XML 规范定义核心 XML 常量和功能。 javax.xml.bind 为包含解组、编组和验证功能的客户端应用程序提供运行时绑定框架。 javax.xml.bind.annotation 定义将 Java 程序元素定制成 XML 模式映射的注释...
javax.xml 根据 XML 规范定义核心 XML 常量和功能。 javax.xml.bind 为包含解组、编组和验证功能的客户端应用程序提供运行时绑定框架。 javax.xml.bind.annotation 定义将 Java 程序元素定制成 XML 模式映射的注释...
javax.xml 根据 XML 规范定义核心 XML 常量和功能。 javax.xml.bind 为包含解组、编组和验证功能的客户端应用程序提供运行时绑定框架。 javax.xml.bind.annotation 定义将 Java 程序元素定制成 XML 模式映射的注释...