【发布时间】:2023-03-22 19:04:01
【问题描述】:
我目前需要更改 java.lang.reflect.Method 对象的注释,它应该是原始方法的克隆,因此原始方法不会被修改。为此,我下载了 Library Javassist。所以,基本上,这样做的最佳代码是:
java.lang.reflect.Method myMethod = /*obtain it*/;
java.lang.reflect.Method myMethodClone = myMethod.clone();
myMethodClone.removeAllAnnotations();
myMethodClone.addAnnotation("@MyAnnotation(something=\"something\", etc");
但不幸的是,类似这个伪代码的代码是不可能的。我尝试使用javassist解决我的问题,但后来我遇到了另一个问题:我无法将Javassists CtMethod Object转换为Method Object,至少在不更改原始方法所在的类的情况下不能。
有人知道如何解决这个问题吗?
【问题讨论】:
标签: java reflection methods annotations javassist