Java “解释”;itf“;ASM 5中visitMethodInsn的参数
对于ASM 5,不推荐使用原始的Java “解释”;itf“;ASM 5中visitMethodInsn的参数,java,java-bytecode-asm,Java,Java Bytecode Asm,对于ASM 5,不推荐使用原始的MethodVisitor.visitMethodInsn()。添加了一个名为itf的新参数。API引用说它的意思是“如果方法的所有者类是接口” 但是我认为如果所有者是一个接口,opcode应该是INVOKEINTERFACE,itf应该是true,opcode应该是INVOKEVIRTUAL,如果所有者是一个普通类,itf应该是falseitf应始终可从操作代码推断 附加参数的要点是什么?ASM5添加了对Java 8字节码格式的支持,该格式允许在接口中使用静态方
MethodVisitor.visitMethodInsn()
。添加了一个名为itf
的新参数。API引用说它的意思是“如果方法的所有者类是接口”
但是我认为如果所有者是一个接口,opcode
应该是INVOKEINTERFACE
,itf
应该是true,opcode
应该是INVOKEVIRTUAL
,如果所有者是一个普通类,itf
应该是false<代码>itf应始终可从操作代码
推断
附加参数的要点是什么?ASM5添加了对Java 8字节码格式的支持,该格式允许在接口中使用静态方法,因此现在至少可以在接口方法上使用
invokestatic
。invokespecial
也可以应用于接口,例如调用继承的默认方法。