Java ASM操作码:" H _"前缀助记符(例如Opcodes.H_GETFIELD vs. Opcodes.GETFIELD)

时间:2014-12-15 16:31:22

标签: java bytecode java-bytecode-asm

我使用ASM Framework进行java字节码操作。一些操作码助记符在ASM中存在两次,它们以" H _":

为前缀
Opcodes.H_GETFIELD         vs. Opcodes.GETFIELD
Opcodes.H_GETSTATIC        vs. Opcodes.GETSTATIC
Opcodes.H_INVOKEINTERFACE  vs. Opcodes.INVOKEINTERFACE
Opcodes.H_INVOKESPECIAL    vs. Opcodes.INVOKESPECIAL
Opcodes.H_INVOKESTATIC     vs. Opcodes.INVOKESTATIC
Opcodes.H_NEWINVOKESPECIAL vs. Opcodes.NEWINVOKESPECIAL
Opcodes.H_PUTFIELD         vs. Opcodes.PUTFIELD
Opcodes.H_PUTSTATIC        vs. Opcodes.PUTSTATIC

这两个操作码之间有什么区别?

1 个答案:

答案 0 :(得分:3)

H_类中的Opcodes常量不是实际操作码,它们用于构建MethodHandle(使用ASM Handle类),可用于{ {3}}说明。