有没有办法知道在访问字节码时用`new`创建哪些类?

问题描述 投票:0回答:1

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

顺便说一下,我正在使用org.objectweb.asm版本7.1

java java-bytecode-asm
1个回答
1
投票

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

void visitTypeInsn(final int opcode, final String type)
© www.soinside.com 2019 - 2024. All rights reserved.