在Dynamic Proxy中取方法标注(annotations)要注意的问题
来源:互联网 发布:js给body添加元素 编辑:程序博客网 时间:2024/05/01 08:15
在jdk1.5中对类的方法申明了标注(annotations),当使用动态代理对该类的实例进行代理后要在invoke(Object proxy, Method method, Object[] args)中获取方法method的标注时不能直接从method获取,就象下面的代码:
public class DynaProxy implements InvocationHandler {
MyClass a = null;
public DynaProxy(MyClass a) {
// a 为被代理的对象
this.a = a;
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
// MyAnnotation 为标注,并且在MyClass的方法上申明
MyAnnotation ann = method.getAnnotation(MyAnnotation.class);
System.out.println(ann); // 这时ann = null
return method.invoke(a,args);
}
}
而要使用下面的代码,从被代理的对象得到方法,在得到标注信息,
public class DynaProxy implements InvocationHandler {
MyClass a = null;
public DynaProxy(MyClass a) {
// a 为被代理的对象
this.a = a;
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
// MyAnnotation 为标注,并且在MyClass的方法上申明
MyAnnotation ann = a.getMethod(method.getName(),method.getParameterTypes()).getAnnotation(MyAnnotation.class);
System.out.println(ann); // 如果MyClass的被调用的方法申明了标注,可以被得到
return method.invoke(a,args);
}
}
另外,如果使用CGlib来动态代理对象, 测试过2.1.3版本不能得到被代理对象的任何标注信息.
- 在Dynamic Proxy中取方法标注(annotations)要注意的问题
- 在C#中应该注意的舍取问题
- 在jquery的ajax方法中的success中使用return要注意的问题
- 代码中标注的方法
- 基于Dynamic Proxy技术的方法拦截器开发
- 在TstringList中加入对象时要注意的问题
- 在keil中编译ucos时要注意的问题
- 在MyEclipse中更改项目名称要注意的问题
- 关于select * 在ABAP中要注意的问题
- LESS中要调用方法要注意的问题
- jQuery中调用方法要注意的问题
- STM32在Kiel4中注意的问题
- EntityUtils的toByteArray方法在移动开发中需要注意的问题
- 标注 (Annotations) 目录
- jquery parent()方法在table标签中使用需要注意的一个问题
- Dynamic Proxy在Java RMI中的应用
- Dynamic Proxy在Java RMI中的应用
- Dynamic Proxy在Java RMI中的应用
- 如何实现在java中实现右键菜单
- Jbuilder 把swf加入war包里面
- Oracle数据导入导出impexp
- [转]Java初学者教程
- 一个简单的键盘钩子程序(ZZZ)
- 在Dynamic Proxy中取方法标注(annotations)要注意的问题
- 工作小记
- 你准备好了吗?别让雁儿飞了
- 在线繁体字转换
- 真正的手机密码大全!
- java调用存储过程
- 搬这里了 http://blog.csdn.net/gooing/
- 怎样才是一个真正的DBA
- CFileDialog文件对话框