【发布时间】:2014-10-13 18:56:54
【问题描述】:
当尝试使用 Javassist 在运行时检查代码时,我需要查看注释。举个简单的例子:
ClassPool pool = ClassPool.getDefault();
CtClass clazz = pool.getCtClass("org.junit.Test");
boolean found = false;
for (Object annotation : clazz.getAvailableAnnotations()) {
if ("java.lang.annotation.Target".equals(annotation.getClass().getName())) {
found = true;
}
}
问题是这段代码永远不会设置found = true。返回的注解类有:
com.sun.proxy.$Proxy8
com.sun.proxy.$Proxy9
知道如何获取实际注释而不是代理吗?或者如何从代理获取实际注释?
【问题讨论】: