クラスjdk.dynalink.linker.GuardedInvocationの
使用
パッケージ
説明
invokedynamic
コール・サイトのリンクに使用されるインタフェースおよびクラスが含まれます。通常のJavaオブジェクトのリンカーを含みます。
独自の言語固有のオブジェクト・モデルおよび型変換を実装するために言語ランタイムに必要なインタフェースおよびクラスが含まれます。
言語ランタイムが独自の言語固有のオブジェクト・モデルおよび型変換を実装しやすくするために、一部のクラスの基本的な実装と様々なユーティリティを提供することで、より便利なクラスが含まれています。
Dynalinkの使用をより便利にするクラスが含まれています。これには、一部のクラスの基本的な実装と様々なユーティリティを提供します。
-
jdk.dynalinkでのGuardedInvocationの使用
修飾子と型メソッド説明void
RelinkableCallSite.relink
(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke) このメソッドは、呼び出しサイトが再リンクされるたびに動的リンカーによって呼び出されます。(例外についてはRelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)
を参照してください)。void
RelinkableCallSite.resetAndRelink
(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke) このメソッドは、コール・サイトが再リンクされるたびにダイナミック・リンカーによって呼び出され、リンカーはコール・サイトが以前のリンケージ・ステート(それはRelinkableCallSite.relink(GuardedInvocation, MethodHandle)
とどのように違うのですか?)を破棄することを望みます。 -
jdk.dynalink.beansでのGuardedInvocationの使用
-
jdk.dynalink.linkerでのGuardedInvocationの使用
修飾子と型メソッド説明GuardedInvocation.addSwitchPoint
(SwitchPoint newSwitchPoint) スイッチ・ポイントを追加して、新しいガード付き呼出しを作成します。GuardedInvocation.asType
(MethodType newType) (戻り型がブール型に変更され、パラメータ数がガード用に切り捨てられる可能性があります)が1つある場合、呼出しとそのガードにMethodHandle.asType(MethodType)
が適用されたかのように、呼出しのタイプを変更します。GuardedInvocation.asType
(CallSiteDescriptor desc) (ガードの戻り値の型をブール値に変更)が1つある場合、呼出しとそのガードにMethodHandle.asType(MethodType)
が適用されたかのように、呼出しのタイプを変更します。GuardedInvocation.asType
(LinkerServices linkerServices, MethodType newType) (戻り型がブール型に変更され、パラメータ数がガード用に切り捨てられる可能性があります)が1つある場合、呼出しとそのガードにLinkerServices.asType(MethodHandle, MethodType)
が適用されたかのように、呼出しのタイプを変更します。GuardedInvocation.asTypeSafeReturn
(LinkerServices linkerServices, MethodType newType) 呼出しのタイプを変更します。LinkerServices.asTypeLosslessReturn(MethodHandle, MethodType)
が呼出しに適用され、LinkerServices.asType(MethodHandle, MethodType)
がガードに適用される((戻り型がブール型に変更され、パラメータ数がガード用に切り捨てられる可能性があります)が1つある場合)。GuardingTypeConverterFactory.convertToType
(Class<?> sourceType, Class<?> targetType, Supplier<MethodHandles.Lookup> lookupSupplier) 指定されたソース・タイプの値を受け取り、指定されたターゲット・タイプに変換された値を戻すガード付き型変換を返します。GuardedInvocation.dropArguments
(int pos, Class<?>... valueTypes) 呼び出しと(それが存在し、少なくともpos
パラメータ)の両方の引数をMethodHandles.dropArguments(MethodHandle, int, Class...)
でドロップする呼び出しを行います。GuardedInvocation.dropArguments
(int pos, List<Class<?>> valueTypes) 呼び出しと(それが存在し、少なくともpos
パラメータ)の両方の引数をMethodHandles.dropArguments(MethodHandle, int, List)
でドロップする呼び出しを行います。GuardedInvocationTransformer.filter
(GuardedInvocation inv, LinkRequest linkRequest, LinkerServices linkerServices) 保護された呼出しがある場合、同じまたは異なるガード付き呼出しを返します。GuardedInvocation.filterArguments
(int pos, MethodHandle... filters) 呼び出しと(それが存在し、少なくともpos + 1
パラメータ)をMethodHandles.filterArguments(MethodHandle, int, MethodHandle...)
で保護する両方に引数フィルタを適用します。GuardingDynamicLinker.getGuardedInvocation
(LinkRequest linkRequest, LinkerServices linkerServices) コール・サイトで指定した引数を使用して、特定の呼出しに適したガード付き呼出しを作成します。LinkerServices.getGuardedInvocation
(LinkRequest linkRequest) このリンカー・サービス・オブジェクトを公開するDynamicLinker
に委任するガード付き呼出しを作成します。GuardedInvocation.replaceMethods
(MethodHandle newInvocation, MethodHandle newGuard) 異なるメソッドを使用して新しいガード付き呼出しを作成し、スイッチ・ポイントを保持します。修飾子と型メソッド説明GuardedInvocationTransformer.filter
(GuardedInvocation inv, LinkRequest linkRequest, LinkerServices linkerServices) 保護された呼出しがある場合、同じまたは異なるガード付き呼出しを返します。 -
jdk.dynalink.linker.supportでのGuardedInvocationの使用
修飾子と型メソッド説明CompositeGuardingDynamicLinker.getGuardedInvocation
(LinkRequest linkRequest, LinkerServices linkerServices) 呼び出しをコンポーネント・リンカーに委任します。CompositeTypeBasedGuardingDynamicLinker.getGuardedInvocation
(LinkRequest linkRequest, LinkerServices linkerServices) -
jdk.dynalink.supportでのGuardedInvocationの使用
修飾子と型メソッド説明void
ChainedCallSite.relink
(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke) void
SimpleRelinkableCallSite.relink
(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke) void
ChainedCallSite.resetAndRelink
(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke) void
SimpleRelinkableCallSite.resetAndRelink
(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke)