クラスjava.lang.invoke.CallSite
の使用
パッケージ
説明
クラスやメソッド・ハンドルなどのランタイム・エンティティ用に「名目記述子」を表すクラスおよびインタフェース、および定数プール・エントリや
invokedynamic
コール・サイトなどのクラス・ファイル・エンティティ用に「名目記述子」を表すクラスおよびインタフェース。java.lang.invoke
パッケージは、Java Virtual Machineとやりとりするための低レベルのプリミティブを提供します。java.lang.runtime
パッケージでは、Java言語の低レベルのランタイム・サポートが提供されます。Dynalinkの使用をより便利にするクラスが含まれています。これには、一部のクラスの基本的な実装と様々なユーティリティを提供します。
-
java.lang.constantでのCallSiteの使用
修飾子と型メソッド説明DynamicCallSiteDesc.resolveCallSiteDesc
(MethodHandles.Lookup lookup) 指定された引数を使用してブートストラップ・メソッドを最終的に起動し、結果のCallSite
を返します。 -
java.lang.invokeでのCallSiteの使用
修飾子と型クラス説明class
ConstantCallSite
は、永続的で決して変更できないターゲットを持つCallSite
です。class
MutableCallSite
は、ターゲット変数の動作が通常のフィールドと同じであるようなCallSite
です。class
VolatileCallSite
は、ターゲットの動作がvolatile変数と同じであるようなCallSite
です。修飾子と型メソッド説明static CallSite
LambdaMetafactory.altMetafactory
(MethodHandles.Lookup caller, String interfaceMethodName, MethodType factoryType, Object... args) 適切な型適応および引数の部分評価の後、指定されたMethodHandle
への委譲により、1つ以上のインタフェースを実装する単純な関数オブジェクトの作成を容易にします。static CallSite
StringConcatFactory.makeConcat
(MethodHandles.Lookup lookup, String name, MethodType concatType) 最適化された文字列連結メソッドの作成を容易にします。このメソッドを使用すると、既知の型の引数(型の適応後や引数の部分評価後など)を効率的に連結できます。static CallSite
StringConcatFactory.makeConcatWithConstants
(MethodHandles.Lookup lookup, String name, MethodType concatType, String recipe, Object... constants) 最適化された文字列連結メソッドの作成を容易にします。このメソッドを使用すると、既知の型の引数(型の適応後や引数の部分評価後など)を効率的に連結できます。static CallSite
LambdaMetafactory.metafactory
(MethodHandles.Lookup caller, String interfaceMethodName, MethodType factoryType, MethodType interfaceMethodType, MethodHandle implementation, MethodType dynamicMethodType) 適切な型適応および引数の部分評価の後、指定されたMethodHandle
への委譲により、1つ以上のインタフェースを実装する単純な関数オブジェクトの作成を容易にします。 -
java.lang.runtimeでのCallSiteの使用
修飾子と型メソッド説明static CallSite
SwitchBootstraps.enumSwitch
(MethodHandles.Lookup lookup, String invocationName, MethodType invocationType, Object... labels) 列挙型のターゲットにswitch
を実装するinvokedynamic
コール・サイトをリンクするためのブートストラップ・メソッド。static CallSite
TemplateRuntime.newLargeStringTemplate
(MethodHandles.Lookup lookup, String name, MethodType type) 大きな文字列テンプレートを作成するための文字列テンプレート・ブートストラップ・メソッド(つまり、値スロット数がStringConcatFactory.MAX_INDY_CONCAT_ARG_SLOTS
PREVIEWを超える場合)。static CallSite
TemplateRuntime.newStringTemplate
(MethodHandles.Lookup lookup, String name, MethodType type, String... fragments) 文字列テンプレートを作成するための文字列テンプレート・ブートストラップ・メソッド。static CallSite
TemplateRuntime.processStringTemplate
(MethodHandles.Lookup lookup, String name, MethodType type, MethodHandle processorGetter, String... fragments) 静的最終プロセッサの文字列テンプレート・ブートストラップ・メソッド。static CallSite
SwitchBootstraps.typeSwitch
(MethodHandles.Lookup lookup, String invocationName, MethodType invocationType, Object... labels) 参照タイプのターゲットにswitch
を実装するinvokedynamic
コール・サイトをリンクするためのブートストラップ・メソッド。 -
jdk.dynalink.supportでのCallSiteの使用
修飾子と型クラス説明class
MutableCallSite
としてのRelinkableCallSite
の基本的な実装。class
多相インライン・キャッシング戦略を実装する再リンク可能なコール・サイト。class
単相インライン・キャッシュ戦略を実装する再リンク可能なコール・サイトであり、常に単一のGuardedInvocation
にのみリンクされます。