2

最近、invokedynamicとMethodHandlesの情報を探し回っています。

BOTHLinkage.registerBootstrapMethod()@BootstrapMethodは、ブートストラップ メソッドをそのようにマークする手段として非推奨になっているようです。

定数プールにどのように登録されていますか?

4

1 に答える 1

3

Java 8 の時点では、ブートストラップ メソッドを登録するための Java 言語レベルのサポートはありません。ブートストラップ メソッドは、定数プールのCONSTANT_InvokeDynamic_info値によって使用されるクラス ファイルのBootstrapMethods 属性で、バイトコード エミッター (ソースからバイトコードへのコンパイラー、バイトコード トランスフォーマー、インストルメンテーション エージェントなど) によって登録されます。次に、invokedynamic 命令によって参照されます。

于 2014-06-29T19:16:40.133 に答える