- java.lang.Object
-
- jdk.dynalink.linker.GuardedInvocation
-
public class GuardedInvocation extends Object
条件付きで有効なメソッド・ハンドルを表します。 通常、GuardingDynamicLinker.getGuardedInvocation(LinkRequest, LinkerServices)およびGuardingTypeConverterFactory.convertToType(Class, Class, Supplier)の戻り値として生成されます。 これは、呼出しメソッド・ハンドルの不変タプル、呼出しハンドルの適用性を定義するガード・メソッド・ハンドル、呼出しハンドルの外部無効化に使用できる0個以上のスイッチ・ポイント、およびメソッド・ハンドルの呼出し中にスローされた場合もそれを無効化する例外タイプです。 ガード・ハンドルがその引数に対して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)スイッチ・ポイントによって無効化できる新しいガード付き呼出しを作成します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 GuardedInvocationaddSwitchPoint(SwitchPoint newSwitchPoint)スイッチ・ポイントを追加して、新しいガード付き呼出しを作成します。GuardedInvocationasType(MethodType newType)MethodHandle.asType(MethodType)が呼出しとそのガードに適用されたかのように、呼出しのタイプを変更します(戻り型がbooleanに変更され、パラメータ数がガードに対して切り捨てられる可能性があります)。GuardedInvocationasType(CallSiteDescriptor desc)MethodHandle.asType(MethodType)が呼出しとそのガードに適用されたかのように、呼出しのタイプを変更します(戻り型がガードのブール型に変更された場合)。GuardedInvocationasType(LinkerServices linkerServices, MethodType newType)LinkerServices.asType(MethodHandle, MethodType)が呼出しとそのガードに適用されたかのように、呼出しのタイプを変更します(戻り型がbooleanに変更され、パラメータ数がガードに対して切り捨てられる可能性があります)。GuardedInvocationasTypeSafeReturn(LinkerServices linkerServices, MethodType newType)LinkerServices.asTypeLosslessReturn(MethodHandle, MethodType)が呼出しに適用され、LinkerServices.asType(MethodHandle, MethodType)がそのガードに適用された場合(戻り型がbooleanに変更され、パラメータ数がガードに対して切り捨てられる可能性がある場合)のように、呼出しのタイプを変更します。MethodHandlecompose(MethodHandle fallback)呼出し、ガード、スイッチ・ポイントおよび例外をコンポジット・メソッド・ハンドルに組み込みます。このハンドルは、ガードが失敗した場合や呼出しが無効になった場合にフォールバックする方法を認識します。MethodHandlecompose(MethodHandle guardFallback, MethodHandle switchpointFallback, MethodHandle catchFallback)呼出し、ガード、スイッチ・ポイントおよび例外をコンポジット・メソッド・ハンドルに組み込みます。このハンドルは、ガードが失敗した場合や呼出しが無効になった場合にフォールバックする方法を認識します。GuardedInvocationdropArguments(int pos, Class<?>... valueTypes)MethodHandles.dropArguments(MethodHandle, int, Class...)を使用して、呼出しとガード(存在し、少なくともposパラメータがある場合)の両方で引数を削除する呼出しを行います。GuardedInvocationdropArguments(int pos, List<Class<?>> valueTypes)MethodHandles.dropArguments(MethodHandle, int, List)を使用して、呼出しとガード(存在し、少なくともposパラメータがある場合)の両方で引数を削除する呼出しを行います。GuardedInvocationfilterArguments(int pos, MethodHandle... filters)MethodHandles.filterArguments(MethodHandle, int, MethodHandle...)を使用して、呼出しとガード(存在し、少なくともpos + 1パラメータがある場合)の両方に引数フィルタを適用します。Class<? extends Throwable>getException()呼出しによってスローされた場合、このガード付き呼出しのリンケージを無効にする必要がある例外タイプを返します。MethodHandlegetGuard()ガード・メソッド・ハンドルを返します。MethodHandlegetInvocation()呼出しメソッド・ハンドルを返します。SwitchPoint[]getSwitchPoints()この呼出しハンドルのリンクを無効にするために使用できるスイッチ・ポイントを返します。booleanhasBeenInvalidated()このガード付き呼出しに少なくとも1つの無効化スイッチ・ポイントがある場合のみ、trueを返します。GuardedInvocationreplaceMethods(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の可能性があります。 スイッチ・ポイントとスイッチ・ポイントの両方が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()
呼出しメソッド・ハンドルを返します。- 戻り値:
- 呼出しメソッド・ハンドル。 nullにはなりません。
-
getGuard
public MethodHandle getGuard()
ガード・メソッド・ハンドルを返します。- 戻り値:
- ガードメソッドハンドル。 nullも可
-
getSwitchPoints
public SwitchPoint[] getSwitchPoints()
この呼出しハンドルのリンクを無効にするために使用できるスイッチ・ポイントを返します。- 戻り値:
- この呼出しハンドルのリンクを無効にするために使用できるスイッチ・ポイント。 nullも可
-
getException
public Class<? extends Throwable> 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)が呼出しとそのガードに適用されたかのように、呼出しのタイプを変更します(戻り型がbooleanに変更され、パラメータ数がガードに対して切り捨てられる可能性があります)。 呼出しがすでに必要な型である場合は、このオブジェクトを返します。- パラメータ:
newType- 呼出しの新しい型。- 戻り値:
- 新しい型が適用されたガード付き呼出し。
-
asType
public GuardedInvocation asType(LinkerServices linkerServices, MethodType newType)
LinkerServices.asType(MethodHandle, MethodType)が呼出しとそのガードに適用されたかのように、呼出しのタイプを変更します(戻り型がbooleanに変更され、パラメータ数がガードに対して切り捨てられる可能性があります)。 呼出しがすでに必要な型である場合は、このオブジェクトを返します。- パラメータ:
linkerServices- 変換に使用するリンカー・サービスnewType- 呼出しの新しい型。- 戻り値:
- 新しい型が適用されたガード付き呼出し。
-
asTypeSafeReturn
public GuardedInvocation asTypeSafeReturn(LinkerServices linkerServices, MethodType newType)
LinkerServices.asTypeLosslessReturn(MethodHandle, MethodType)が呼出しに適用され、LinkerServices.asType(MethodHandle, MethodType)がそのガードに適用された場合(戻り型がbooleanに変更され、パラメータ数がガードに対して切り捨てられる可能性がある場合)のように、呼出しのタイプを変更します。 呼出しで型が変更されない場合は、このオブジェクトを返します。- パラメータ:
linkerServices- 変換に使用するリンカー・サービスnewType- 呼出しの新しい型。- 戻り値:
- 新しい型が適用されたガード付き呼出し。
-
asType
public GuardedInvocation asType(CallSiteDescriptor desc)
MethodHandle.asType(MethodType)が呼出しとそのガードに適用されたかのように、呼出しのタイプを変更します(戻り型がガードのブール型に変更された場合)。 呼出しがすでに必要な型である場合は、このオブジェクトを返します。- パラメータ:
desc- メソッド・タイプが適合するコール記述子。- 戻り値:
- 新しい型が適用されたガード付き呼出し。
-
filterArguments
public GuardedInvocation filterArguments(int pos, MethodHandle... filters)
MethodHandles.filterArguments(MethodHandle, int, MethodHandle...)を使用して、呼出しとガード(存在し、少なくともpos + 1パラメータがある場合)の両方に引数フィルタを適用します。- パラメータ:
pos- フィルタされる最初の引数の位置filters- 引数フィルタ- 戻り値:
- フィルタされた呼出し
-
dropArguments
public GuardedInvocation dropArguments(int pos, List<Class<?>> valueTypes)
MethodHandles.dropArguments(MethodHandle, int, List)を使用して、呼出しとガード(存在し、少なくともposパラメータがある場合)の両方で引数を削除する呼出しを行います。- パラメータ:
pos- 削除される最初の引数の位置valueTypes- 削除される値の型- 戻り値:
- 引数を削除する呼出し
-
dropArguments
public GuardedInvocation dropArguments(int pos, Class<?>... valueTypes)
MethodHandles.dropArguments(MethodHandle, int, Class...)を使用して、呼出しとガード(存在し、少なくともposパラメータがある場合)の両方で引数を削除する呼出しを行います。- パラメータ:
pos- 削除される最初の引数の位置valueTypes- 削除される値の型- 戻り値:
- 引数を削除する呼出し
-
compose
public MethodHandle compose(MethodHandle fallback)
呼出し、ガード、スイッチ・ポイントおよび例外をコンポジット・メソッド・ハンドルに組み込みます。このハンドルは、ガードが失敗した場合や呼出しが無効になった場合にフォールバックする方法を認識します。- パラメータ:
fallback- スイッチ・ポイントが無効化された場合、ガードがfalseを返した場合、または無効化例外がスローされた場合のフォールバック・メソッド・ハンドル。- 戻り値:
- コンポジット・メソッド・ハンドル。
-
compose
public MethodHandle compose(MethodHandle guardFallback, MethodHandle switchpointFallback, MethodHandle catchFallback)
呼出し、ガード、スイッチ・ポイントおよび例外をコンポジット・メソッド・ハンドルに組み込みます。このハンドルは、ガードが失敗した場合や呼出しが無効になった場合にフォールバックする方法を認識します。- パラメータ:
switchpointFallback- スイッチ・ポイントが無効化されている場合のフォールバック・メソッド・ハンドル。guardFallback- ガードがfalseを返す場合のフォールバック・メソッド・ハンドル。catchFallback- 例外ハンドラがトリガーされた場合のフォールバック・メソッド。- 戻り値:
- コンポジット・メソッド・ハンドル。
-
-