【发布时间】:2015-09-17 20:53:53
【问题描述】:
我有这段代码,如果没有找到方法,我需要打印找不到方法。
public class MethodFinder {
public static void main(String[] args) throws Throwable {
ClassPool cp = ClassPool.getDefault();
CtClass ctClass = cp.get("MyClass");
CtMethod method = ctClass.getDeclaredMethod("getItem1");
method.instrument(
new ExprEditor() {
public void edit(MethodCall m)
throws CannotCompileException
{
System.out.println(m.getClassName() + "." + m.getMethodName() + " " + m.getSignature());
}
});
} }
【问题讨论】:
-
您是否尝试过阅读 Java 中的反射?
-
你需要一个字节码库,比如Apache Commons BCEL™。
-
@YassinHH 不相关,因为反射要求类在类路径中,这里不是这样,它不能给你字节码指令。
-
@Andreas 好的,谢谢你的回答
-
你也可以去研究Class File Format和JVM Instruction Set,自己编写一个解析器,不需要第三方库的帮助。但是,您如何“到处搜索”却一无所获,十几个库中的一个或文档都找不到,这是一个谜……