访问字节码时,是否有办法知道使用`new`创建的类?

时间:2019-04-07 11:17:31

标签: java java-bytecode-asm

我想通过访问类的字节码来计算类的所有依赖关系,在ClassVisitor中,有方法,字段,属性等的访问者,但是无法通过调用新的构造函数来找到何时使用类。 this.add(new MyComponent("Hi"))我希望使用MyComponent,因此我需要将此依存关系列出在我的结果中。

顺便说一句,我正在使用org.objectweb.asm7.1

1 个答案:

答案 0 :(得分:1)

我认为您不能直接使用ClassVisitor来做到这一点,但是您需要使用MethodVisitor。您从ClassVisitor的visitMethod返回MethodVisitor实例。在那里,您可以实现visitTypeInsn方法并检查参数opcode == Opcodes.NEW是否为

void visitTypeInsn(final int opcode, final String type)