最近、invokedynamicとMethodHandlesの情報を探し回っています。
BOTHLinkage.registerBootstrapMethod()
と@BootstrapMethod
は、ブートストラップ メソッドをそのようにマークする手段として非推奨になっているようです。
定数プールにどのように登録されていますか?
最近、invokedynamicとMethodHandlesの情報を探し回っています。
BOTHLinkage.registerBootstrapMethod()
と@BootstrapMethod
は、ブートストラップ メソッドをそのようにマークする手段として非推奨になっているようです。
定数プールにどのように登録されていますか?
Java 8 の時点では、ブートストラップ メソッドを登録するための Java 言語レベルのサポートはありません。ブートストラップ メソッドは、定数プールのCONSTANT_InvokeDynamic_info値によって使用されるクラス ファイルのBootstrapMethods 属性で、バイトコード エミッター (ソースからバイトコードへのコンパイラー、バイトコード トランスフォーマー、インストルメンテーション エージェントなど) によって登録されます。次に、invokedynamic 命令によって参照されます。