为何增添另外一种挪用字节码呢?谜底就是挪用地址(挪用字节码的实例)长短常有效的,但是现存的挪用划定规矩与Java言语绑定的太紧了乃至于JVM的良多能量并未对想依靠其的言语开释出来。次要的限定以下:
静态言语完成者在这些限定上消费了大批工夫和精神,依据JVM挪用字节码(由Java言语限定)摹拟出一样平常的挪用。
- 吸收者(receiver)范例必需遵守挪用地址的剖析范例
- 并没有一样平常的体例以环绕着挪用方针创立适配器(这是上述限定的一定了局)
- 挪用地址必需要链接起来,这意味着挪用前已剖析的办法就要存在
- 标记挪用名就是实践的办法名(这是上述限定的一定了局)
- 要有准确的参数婚配(又是一个一定了局)
- 不克不及倒置链接了局(只管优化了局在不知不觉中产生变更)
我们用三个步骤办理这些成绩。起首,我们以一种复杂而一样平常的体例来处置办法句柄,这是将办法(恣意的JVM办法)作为举动单位来办理的,如许他们就能够间接挪用了(原本就应当如许)。其次,我们用一个链接形态的呆板字界说一个invokedynamic指令,它是挪用地址上方针办法的句柄。第三,我们界说一套中心的JavaAPIs以办理链接形态并为挪用地址创立方针办法句柄。注重,他们这些APIs能向乐意利用其的JVMs供应得当的优化时机。
欢迎光临 仓酷云 (http://ckuyun.com/) | Powered by Discuz! X3.2 |