- java.lang.Object
-
- jdk.dynalink.linker.support.Lookup
-
public final class Lookup extends Object
チェックした例外をマスクするMethodHandles.Lookupのラッパー。 これは、独自のコードベース内でメソッドを検索している場合に便利です(そのため、メソッドが存在しない場合はエラーになります)。
-
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static LookupPUBLICMethodHandles.publicLookup()をラップする正規ルックアップ・オブジェクト。
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 Lookup(MethodHandles.Lookup lookup)MethodHandles.Lookupのインスタンスにバインドされた新しいインスタンスを作成します。
-
メソッドのサマリー
-
-
-
フィールドの詳細
-
PUBLIC
public static final Lookup PUBLIC
MethodHandles.publicLookup()をラップする正規ルックアップ・オブジェクト。
-
-
コンストラクタの詳細
-
Lookup
public Lookup(MethodHandles.Lookup lookup)
MethodHandles.Lookupのインスタンスにバインドされた新しいインスタンスを作成します。- パラメータ:
lookup- 委任先のMethodHandles.Lookup。
-
-
メソッドの詳細
-
unreflect
public MethodHandle unreflect(Method m)
- パラメータ:
m- 反射しないメソッド- 戻り値:
- 未反映のメソッド・ハンドル。
- 例外:
IllegalAccessError- メソッドにアクセスできない場合。
-
unreflect
public static MethodHandle unreflect(MethodHandles.Lookup lookup, Method m)
- パラメータ:
lookup- 反射解除に使用されるルックアップm- 反射しないメソッド- 戻り値:
- 未反映のメソッド・ハンドル。
- 例外:
IllegalAccessError- メソッドにアクセスできない場合。
-
unreflectGetter
public MethodHandle unreflectGetter(Field f)
MethodHandles.Lookup.unreflectGetter(Field)を実行し、検出されたIllegalAccessExceptionをIllegalAccessErrorに変換します。- パラメータ:
f- getterが反映されないフィールド- 戻り値:
- 反射されていないフィールド・ゲッター・ハンドル。
- 例外:
IllegalAccessError- getterにアクセスできない場合。
-
findGetter
public MethodHandle findGetter(Class<?> refc, String name, Class<?> type)
MethodHandles.Lookup.findGetter(Class, String, Class)を実行し、検出されたIllegalAccessExceptionをIllegalAccessErrorに変換し、NoSuchFieldExceptionをNoSuchFieldErrorに変換します。- パラメータ:
refc- フィールドを宣言するクラスname- フィールドの名前type- フィールドのタイプ- 戻り値:
- 反射されていないフィールド・ゲッター・ハンドル。
- 例外:
IllegalAccessError- フィールドにアクセスできない場合。NoSuchFieldError- フィールドが存在しない場合。
-
unreflectSetter
public MethodHandle unreflectSetter(Field f)
MethodHandles.Lookup.unreflectSetter(Field)を実行し、検出されたIllegalAccessExceptionをIllegalAccessErrorに変換します。- パラメータ:
f- setterが反映されないフィールド- 戻り値:
- 未反映のフィールドセッターハンドル。
- 例外:
IllegalAccessError- フィールドにアクセスできない場合。NoSuchFieldError- フィールドが存在しない場合。
-
unreflectConstructor
public MethodHandle unreflectConstructor(Constructor<?> c)
MethodHandles.Lookup.unreflectConstructor(Constructor)を実行し、検出されたIllegalAccessExceptionをIllegalAccessErrorに変換します。- パラメータ:
c- 反射しないコンストラクタ- 戻り値:
- 反射されないコンストラクタ・ハンドル。
- 例外:
IllegalAccessError- コンストラクタにアクセスできない場合。
-
unreflectConstructor
public static MethodHandle unreflectConstructor(MethodHandles.Lookup lookup, Constructor<?> c)
MethodHandles.Lookup.unreflectConstructor(Constructor)を実行し、検出されたIllegalAccessExceptionをIllegalAccessErrorに変換します。- パラメータ:
lookup- 反射解除に使用されるルックアップc- 反射しないコンストラクタ- 戻り値:
- 反射されないコンストラクタ・ハンドル。
- 例外:
IllegalAccessError- コンストラクタにアクセスできない場合。
-
findSpecial
public MethodHandle findSpecial(Class<?> declaringClass, String name, MethodType type)
基礎となる参照に対してMethodHandles.Lookup.findSpecial(Class, String, MethodType, Class)を実行します。 検出されたIllegalAccessExceptionをIllegalAccessErrorに変換し、NoSuchMethodExceptionをNoSuchMethodErrorに変換します。- パラメータ:
declaringClass- メソッドを宣言するクラスname- メソッドの名前type- メソッドの型- 戻り値:
- メソッドのメソッド・ハンドル
- 例外:
IllegalAccessError- メソッドにアクセスできない場合。NoSuchMethodError- メソッドが存在しない場合。
-
findStatic
public MethodHandle findStatic(Class<?> declaringClass, String name, MethodType type)
基礎となる参照に対してMethodHandles.Lookup.findStatic(Class, String, MethodType)を実行します。 検出されたIllegalAccessExceptionをIllegalAccessErrorに変換し、NoSuchMethodExceptionをNoSuchMethodErrorに変換します。- パラメータ:
declaringClass- メソッドを宣言するクラスname- メソッドの名前type- メソッドの型- 戻り値:
- メソッドのメソッド・ハンドル
- 例外:
IllegalAccessError- メソッドにアクセスできない場合。NoSuchMethodError- メソッドが存在しない場合。
-
findVirtual
public MethodHandle findVirtual(Class<?> declaringClass, String name, MethodType type)
基礎となる参照に対してMethodHandles.Lookup.findVirtual(Class, String, MethodType)を実行します。 検出されたIllegalAccessExceptionをIllegalAccessErrorに変換し、NoSuchMethodExceptionをNoSuchMethodErrorに変換します。- パラメータ:
declaringClass- メソッドを宣言するクラスname- メソッドの名前type- メソッドの型- 戻り値:
- メソッドのメソッド・ハンドル
- 例外:
IllegalAccessError- メソッドにアクセスできない場合。NoSuchMethodError- メソッドが存在しない場合。
-
findOwnSpecial
public static MethodHandle findOwnSpecial(MethodHandles.Lookup lookup, String name, Class<?> rtype, Class<?>... ptypes)
ルックアップを指定すると、そのルックアップのクラスでfindSpecial(Class, String, MethodType)を使用してメソッドが検索されます。 クラスのコードで役立ち、独自のプライベートに簡単にリンクできます。- パラメータ:
lookup- クラスの参照name- メソッドの名前rtype- メソッドの戻り型ptypes- メソッドのパラメータ・タイプ- 戻り値:
- メソッドのメソッド・ハンドル
-
findOwnSpecial
public MethodHandle findOwnSpecial(String name, Class<?> rtype, Class<?>... ptypes)
findSpecial(Class, String, MethodType)を使用して、その参照のクラスに対するメソッドを検索します。 クラスのコードで役立ち、独自のプライベートに簡単にリンクできます。 また、パラメータ・タイプのみをリストでき、ルックアップ・クラスを指定する必要がないという点で、findSpecialよりも便利です。- パラメータ:
name- メソッドの名前rtype- メソッドの戻り型ptypes- メソッドのパラメータ・タイプ- 戻り値:
- メソッドのメソッド・ハンドル
-
findOwnStatic
public static MethodHandle findOwnStatic(MethodHandles.Lookup lookup, String name, Class<?> rtype, Class<?>... ptypes)
ルックアップを指定すると、そのルックアップのクラスでfindStatic(Class, String, MethodType)を使用してメソッドが検索されます。 クラスのコードで役立ち、独自のプライベートに簡単にリンクできます。 パラメータ・タイプのみをリストでき、ルックアップ・クラスを指定する必要がないという点で、findStaticよりも簡単に使用できます。- パラメータ:
lookup- クラスの参照name- メソッドの名前rtype- メソッドの戻り型ptypes- メソッドのパラメータ・タイプ- 戻り値:
- メソッドのメソッド・ハンドル
-
findOwnStatic
public MethodHandle findOwnStatic(String name, Class<?> rtype, Class<?>... ptypes)
findStatic(Class, String, MethodType)を使用して、その参照のクラスに対するメソッドを検索します。 クラスのコードで役立ち、独自のプライベートに簡単にリンクできます。 パラメータ・タイプのみをリストでき、ルックアップ・クラスを指定する必要がないという点で、findStaticよりも簡単に使用できます。- パラメータ:
name- メソッドの名前rtype- メソッドの戻り型ptypes- メソッドのパラメータ・タイプ- 戻り値:
- メソッドのメソッド・ハンドル
-
-