使用ASM 5时,不推荐使用原始MethodVisitor.visitMethodInsn()
。添加了一个名为itf
的新参数。 API参考说它意味着“如果方法的所有者类是一个接口”。
但我认为opcode
应为INVOKEINTERFACE
,如果所有者是界面,则itf
应为真,opcode
应为INVOKEVIRTUAL
且{{1}如果所有者是普通类,则应该为false。 itf
itf
始终可以传播opcode
。
附加论点有什么意义?
答案 0 :(得分:3)
ASM 5增加了对Java 8字节码格式的支持,允许接口中的静态方法,因此现在至少可以在接口方法上使用invokestatic
。