java如何将变量传递给扩展类的方法
我正在扩展类ClassVisitor
,并重写方法visitMethod
。然后我扩展MethodVisitor
并覆盖visitMethodInsn
。当我重写visitMethod
时,我会创建扩展MethodVisitor
的一个新实例
请参阅下面的代码以理解。要正确理解ASM库,需要了解ASM库
GraphClass。爪哇:
public class GraphClass extends ClassVisitor {
public GraphClass() {
super(ASM5);
}
public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
System.out.println("testing " + name + desc);
GraphMethod newVisitor = new GraphMethod();
return newVisitor;
}
}
作图法。爪哇:
public class GraphMethod extends MethodVisitor{
public GraphMethod() {
super(ASM5);
}
public void visitMethodInsn(int opcode, java.lang.String owner, java.lang.String name, java.lang.String descriptor, boolean isInterface) {
System.out.println(owner + name);
}
}
我试图做的是将visitMethod
中的name
变量与visitMethodInsn
中的其他变量一起打印
我是Java新手,所以任何提示都会非常有用
# 1 楼答案
根据这些评论,我假设您想知道被访问类的方法调用了哪些方法,好吗
使用objectweb asm的树api很容易解决这个问题