java.lang.Object
jdk.dynalink.linker.GuardedInvocation
public class GuardedInvocation extends Object
条件付きで有効なメソッド・ハンドルを表します。 通常、
GuardingDynamicLinker.getGuardedInvocation(LinkRequest, LinkerServices)
とGuardingTypeConverterFactory.convertToType(Class, Class, Supplier)
の戻り値として生成されます。 これは、呼び出しメソッド・ハンドルの不変タプル、呼び出しハンドルの適用可能性を定義するガード・メソッド・ハンドル、呼び出しハンドルの外部無効化に使用できるゼロまたはそれ以上のスイッチ・ポイント、および例外処理の間にスローされる例外型です。メソッド・ハンドルを呼び出すと、メソッド・ハンドルも無効になります。 呼び出しハンドルは、ガード・ハンドルが引数に対してtrueを返す場合、およびスイッチ・ポイントのいずれかが無効化されない限り、および指定された型の例外をスローしない限り、呼び出しに適しています。 ガード、スイッチ・ポイント、および例外型は、すべてオプションです((それらのどれも持たない保護された呼び出しは無条件に有効です))。 -
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 GuardedInvocation(MethodHandle invocation)
無条件のガード付き呼び出しを新しく作成します。GuardedInvocation(MethodHandle invocation, MethodHandle guard)
ガード・メソッド・ハンドルを使用して、新しいガードされた呼び出しを作成します。GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint switchPoint)
ガード・メソッド・ハンドルと、それを無効化するために使用できるスイッチ・ポイントの両方を使用して、新しいガードされた呼び出しを作成します。GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint[] switchPoints, Class<? extends Throwable> exception)
ガード・メソッド・ハンドル、無効化するために使用できるスイッチ・ポイントの数、呼び出し時にスローされた場合に無効にする例外など、新しいガード付き呼び出しを作成します。GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint switchPoint, Class<? extends Throwable> exception)
ガード・メソッド・ハンドル、無効にするために使用できるスイッチ・ポイント、および起動時にスローされると無効にする例外を持つ、新しいガードされた呼び出しを作成します。GuardedInvocation(MethodHandle invocation, SwitchPoint switchPoint)
スイッチ・ポイントによって無効にできる新しい保護された呼び出しを作成します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 GuardedInvocation
addSwitchPoint(SwitchPoint newSwitchPoint)
スイッチ・ポイントが追加された新しい保護呼び出しを作成します。GuardedInvocation
asType(MethodType newType)
MethodHandle.asType(MethodType)
がその呼び出しとそのガードに適用されたかのように、呼び出しのタイプを変更します((戻り値の型がブール値に変更され、ガードに対してパラメータ・カウントが切り捨てられる可能性があります)が1つの場合)。GuardedInvocation
asType(CallSiteDescriptor desc)
MethodHandle.asType(MethodType)
がその呼び出しとそのガードに適用されたかのように、呼び出しのタイプを変更します((ガードの戻り値の型をブール値に変更)が1つの場合)。GuardedInvocation
asType(LinkerServices linkerServices, MethodType newType)
LinkerServices.asType(MethodHandle, MethodType)
がその呼び出しとそのガードに適用されたかのように、呼び出しのタイプを変更します((戻り値の型がブール値に変更され、ガードに対してパラメータ・カウントが切り捨てられる可能性があります)が1つの場合)。GuardedInvocation
asTypeSafeReturn(LinkerServices linkerServices, MethodType newType)
LinkerServices.asTypeLosslessReturn(MethodHandle, MethodType)
がその呼び出しに適用され、(戻り値の型がブール値に変更され、ガードに対してパラメータ・カウントが切り捨てられる可能性があります)が1つの場合、LinkerServices.asType(MethodHandle, MethodType)
がガードに適用されたかのように、呼び出しのタイプを変更します。MethodHandle
compose(MethodHandle fallback)
ガードが失敗したときや呼び出しが無効になったときにどのようにフォールバックするかを知っているコンポジット・メソッド・ハンドルに、呼び出し、ガード、スイッチ・ポイント、および例外を組み込みます。MethodHandle
compose(MethodHandle guardFallback, MethodHandle switchpointFallback, MethodHandle catchFallback)
ガードが失敗したときや呼び出しが無効になったときにどのようにフォールバックするかを知っているコンポジット・メソッド・ハンドルに、呼び出し、ガード、スイッチ・ポイント、および例外を組み込みます。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)
でドロップする呼び出しを行います。GuardedInvocation
filterArguments(int pos, MethodHandle... filters)
呼び出しと(それが存在し、少なくともpos + 1
パラメータ)をMethodHandles.filterArguments(MethodHandle, int, MethodHandle...)
で保護する両方に引数フィルタを適用します。Class<? extends Throwable>
getException()
呼び出しによってスローされた場合、このガードされた呼び出しのリンケージを無効にする必要がある例外の型を返します。MethodHandle
getGuard()
ガード・メソッド・ハンドルを返します。MethodHandle
getInvocation()
呼び出しメソッド・ハンドルを返します。SwitchPoint[]
getSwitchPoints()
この呼び出しハンドルのリンケージを無効にするために使用できるスイッチ・ポイントを返します。boolean
hasBeenInvalidated()
このガードされた呼び出しに少なくとも1つの無効化されたスイッチ・ポイントがある場合にのみtrueを返します。GuardedInvocation
replaceMethods(MethodHandle newInvocation, MethodHandle newGuard)
スイッチ・ポイントを保持して、異なるメソッドで新しいガードされた呼び出しを作成します。
-
コンストラクタの詳細
-
GuardedInvocation
public GuardedInvocation(MethodHandle invocation)無条件のガード付き呼び出しを新しく作成します。 それは無効でないので無条件です。- パラメータ:
invocation
- 呼び出しを表すメソッド・ハンドル。 nullは不可。- 例外:
NullPointerException
- 呼び出しがnullの場合。
-
GuardedInvocation
public GuardedInvocation(MethodHandle invocation, MethodHandle guard)ガード・メソッド・ハンドルを使用して、新しいガードされた呼び出しを作成します。- パラメータ:
invocation
- 呼び出しを表すメソッド・ハンドル。 nullは不可。guard
- ガードを表すメソッド・ハンドル。MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle)
についてinvocation
ハンドルと互換性がある必要があります。 便利な警備員のために、Guards
クラスをチェックしてください。 無条件呼び出しを表すにはnullにすることができます。- 例外:
NullPointerException
- 呼び出しがnullの場合。
-
GuardedInvocation
public GuardedInvocation(MethodHandle invocation, SwitchPoint switchPoint)スイッチ・ポイントによって無効にできる新しい保護された呼び出しを作成します。- パラメータ:
invocation
- 呼び出しを表すメソッド・ハンドル。 nullは不可。switchPoint
- このリンケージを無効にするために使用できるオプションのスイッチ・ポイント。 nullでもかまいません。 nullの場合、これは無条件の呼び出しを表します。- 例外:
NullPointerException
- 呼び出しがnullの場合。
-
GuardedInvocation
public GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint switchPoint)ガード・メソッド・ハンドルと、それを無効化するために使用できるスイッチ・ポイントの両方を使用して、新しいガードされた呼び出しを作成します。- パラメータ:
invocation
- 呼び出しを表すメソッド・ハンドル。 nullは不可。guard
- ガードを表すメソッド・ハンドル。MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle)
についてinvocation
ハンドルと互換性がある必要があります。 便利な警備員のために、Guards
クラスをチェックしてください。 nullでもかまいません。 これとスイッチ・ポイントの両方がヌルの場合、これは無条件の呼び出しを表します。switchPoint
- このリンケージを無効にするために使用できるオプションのスイッチ・ポイント。- 例外:
NullPointerException
- 呼び出しがnullの場合。
-
GuardedInvocation
public GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint switchPoint, Class<? extends Throwable> exception)ガード・メソッド・ハンドル、無効にするために使用できるスイッチ・ポイント、および起動時にスローされると無効にする例外を持つ、新しいガードされた呼び出しを作成します。- パラメータ:
invocation
- 呼び出しを表すメソッド・ハンドル。 nullは不可。guard
- ガードを表すメソッド・ハンドル。MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle)
についてinvocation
ハンドルと互換性がある必要があります。 便利な警備員のために、Guards
クラスをチェックしてください。 nullでもかまいません。 それとスイッチ・ポイントと例外がすべてnullの場合、これは無条件呼び出しを表します。switchPoint
- このリンケージを無効にするために使用できるオプションのスイッチ・ポイント。exception
- 呼び出しによってスローされるときのオプションの例外型も、それを無効にします。- 例外:
NullPointerException
- 呼び出しがnullの場合。
-
GuardedInvocation
public GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint[] switchPoints, Class<? extends Throwable> exception)ガード・メソッド・ハンドル、無効化するために使用できるスイッチ・ポイントの数、呼び出し時にスローされた場合に無効にする例外など、新しいガード付き呼び出しを作成します。- パラメータ:
invocation
- 呼び出しを表すメソッド・ハンドル。 nullは不可。guard
- ガードを表すメソッド・ハンドル。MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle)
についてinvocation
ハンドルと互換性がある必要があります。 便利な警備員のために、Guards
クラスをチェックしてください。 nullでもかまいません。 例外と例外が両方ともNULLで、スイッチ・ポイントが指定されていない場合、これは無条件呼び出しを表します。switchPoints
- このリンケージを無効にするために使用できるオプションのスイッチ・ポイント。exception
- 呼び出しによってスローされるときのオプションの例外型も、それを無効にします。- 例外:
NullPointerException
- 呼び出しがnullの場合。
-
-
メソッドの詳細
-
getInvocation
public MethodHandle getInvocation()呼び出しメソッド・ハンドルを返します。- 戻り値:
- 呼び出しメソッドhandle。 nullにはなりません。
-
getGuard
public MethodHandle getGuard()ガード・メソッド・ハンドルを返します。- 戻り値:
- ガード・メソッド・ハンドル。 nullも可。
-
getSwitchPoints
public SwitchPoint[] getSwitchPoints()この呼び出しハンドルのリンケージを無効にするために使用できるスイッチ・ポイントを返します。- 戻り値:
- この呼び出しハンドルのリンケージを無効にするために使用できる切り替えポイント。 nullも可。
-
getException
呼び出しによってスローされた場合、このガードされた呼び出しのリンケージを無効にする必要がある例外の型を返します。- 戻り値:
- リンクを無効にするためにスローされるべきである場合の例外の型。 nullも可。
-
hasBeenInvalidated
public boolean hasBeenInvalidated()このガードされた呼び出しに少なくとも1つの無効化されたスイッチ・ポイントがある場合にのみtrueを返します。- 戻り値:
- このガードされた呼び出しに少なくとも1つの無効化されたスイッチ・ポイントがある場合にのみtrue。
-
replaceMethods
public GuardedInvocation replaceMethods(MethodHandle newInvocation, MethodHandle newGuard)スイッチ・ポイントを保持して、異なるメソッドで新しいガードされた呼び出しを作成します。- パラメータ:
newInvocation
- 新しい呼び出しnewGuard
- 新しいガード- 戻り値:
- 置き換えられたメソッドと、この呼び出しと同じ切り替えポイントを持つ、新しい保護された呼び出し。
-
addSwitchPoint
public GuardedInvocation addSwitchPoint(SwitchPoint newSwitchPoint)スイッチ・ポイントが追加された新しい保護呼び出しを作成します。- パラメータ:
newSwitchPoint
- 新しいスイッチ・ポイント。 nullの場合、このメソッドは現在のガードされた呼び出しを変更なしで返します。- 戻り値:
- 追加されたスイッチ・ポイントで保護された呼び出し。
-
asType
public GuardedInvocation asType(MethodType newType)MethodHandle.asType(MethodType)
がその呼び出しとそのガードに適用されたかのように、呼び出しのタイプを変更します((戻り値の型がブール値に変更され、ガードに対してパラメータ・カウントが切り捨てられる可能性があります)が1つの場合)。 呼び出しがすでに必要な型であれば、このオブジェクトを返します。- パラメータ:
newType
- 呼び出しの新しい型。- 戻り値:
- それに新しい型が適用された保護された呼び出し。
-
asType
public GuardedInvocation asType(LinkerServices linkerServices, MethodType newType)LinkerServices.asType(MethodHandle, MethodType)
がその呼び出しとそのガードに適用されたかのように、呼び出しのタイプを変更します((戻り値の型がブール値に変更され、ガードに対してパラメータ・カウントが切り捨てられる可能性があります)が1つの場合)。 呼び出しがすでに必要な型であれば、このオブジェクトを返します。- パラメータ:
linkerServices
- 変換に使用するリンカー・サービスnewType
- 呼び出しの新しい型。- 戻り値:
- それに新しい型が適用された保護された呼び出し。
-
asTypeSafeReturn
public GuardedInvocation asTypeSafeReturn(LinkerServices linkerServices, MethodType newType)LinkerServices.asTypeLosslessReturn(MethodHandle, MethodType)
がその呼び出しに適用され、(戻り値の型がブール値に変更され、ガードに対してパラメータ・カウントが切り捨てられる可能性があります)が1つの場合、LinkerServices.asType(MethodHandle, MethodType)
がガードに適用されたかのように、呼び出しのタイプを変更します。 呼び出しが型を変更しない場合、このオブジェクトを返します。- パラメータ:
linkerServices
- 変換に使用するリンカー・サービスnewType
- 呼び出しの新しい型。- 戻り値:
- それに新しい型が適用された保護された呼び出し。
-
asType
public GuardedInvocation asType(CallSiteDescriptor desc)MethodHandle.asType(MethodType)
がその呼び出しとそのガードに適用されたかのように、呼び出しのタイプを変更します((ガードの戻り値の型をブール値に変更)が1つの場合)。 呼び出しがすでに必要な型であれば、このオブジェクトを返します。- パラメータ:
desc
- メソッドの型が適合する呼び出し記述子。- 戻り値:
- それに新しい型が適用された保護された呼び出し。
-
filterArguments
public GuardedInvocation filterArguments(int pos, MethodHandle... filters)呼び出しと(それが存在し、少なくともpos + 1
パラメータ)をMethodHandles.filterArguments(MethodHandle, int, MethodHandle...)
で保護する両方に引数フィルタを適用します。- パラメータ:
pos
- 第1引数の位置がフィルタリングされるfilters
- 引数フィルタ- 戻り値:
- フィルタリングされた呼び出し
-
dropArguments
public GuardedInvocation dropArguments(int pos, List<Class<?>> valueTypes)呼び出しと(それが存在し、少なくともpos
パラメータ)の両方の引数をMethodHandles.dropArguments(MethodHandle, int, List)
でドロップする呼び出しを行います。- パラメータ:
pos
- 最初の引数の位置が削除されるvalueTypes
- ドロップされる値の型- 戻り値:
- 引数を削除する呼び出し
-
dropArguments
public GuardedInvocation dropArguments(int pos, Class<?>... valueTypes)呼び出しと(それが存在し、少なくともpos
パラメータ)の両方の引数をMethodHandles.dropArguments(MethodHandle, int, Class...)
でドロップする呼び出しを行います。- パラメータ:
pos
- 最初の引数の位置が削除されるvalueTypes
- ドロップされる値の型- 戻り値:
- 引数を削除する呼び出し
-
compose
public MethodHandle compose(MethodHandle fallback)ガードが失敗したときや呼び出しが無効になったときにどのようにフォールバックするかを知っているコンポジット・メソッド・ハンドルに、呼び出し、ガード、スイッチ・ポイント、および例外を組み込みます。- パラメータ:
fallback
- フォールバック・メソッドは、スイッチ・ポイントが無効化されたとき、ガードがfalseを返すとき、または無効化例外がスローされたときに処理します。- 戻り値:
- コンポジット・メソッド・ハンドル。
-
compose
public MethodHandle compose(MethodHandle guardFallback, MethodHandle switchpointFallback, MethodHandle catchFallback)ガードが失敗したときや呼び出しが無効になったときにどのようにフォールバックするかを知っているコンポジット・メソッド・ハンドルに、呼び出し、ガード、スイッチ・ポイント、および例外を組み込みます。- パラメータ:
switchpointFallback
- スイッチ・ポイントが無効にされた場合のフォールバック・メソッド・ハンドル。guardFallback
- ガードがfalseを返す場合のフォールバック・メソッド・ハンドル。catchFallback
- 例外ハンドラがトリガーされた場合のフォールバック・メソッド。- 戻り値:
- コンポジット・メソッド・ハンドル。
-