Я расширяю класс ClassVisitor
и переопределяю метод visitMethod
.Затем я расширяю MethodVisitor
и переопределяю visitMethodInsn
.Когда я переопределяю visitMethod
, я создаю новый экземпляр расширенного MethodVisitor
.
. Пожалуйста, ознакомьтесь с кодом ниже, чтобы понять.Имейте в виду, что знание библиотеки ASM необходимо для ее правильного понимания.
GraphClass.java:
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;
}
}
GraphMethod.java:
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);
}
}
ЧтоЯ пытаюсь сделать, это передать переменную name
из visitMethod
для печати вместе с другими переменными в visitMethodInsn
.
Я новичок в Java, поэтому любые советы будут очень полезны.