クラスLookup
java.lang.Object
jdk.dynalink.linker.support.Lookup
public final class Lookup extends Object
チェックされた例外をマスクする
MethodHandles.Lookupのラッパー。 独自のコードベース (したがって、存在しない場合はエラーです)内でメソッドを検索する場合に便利です。 - 導入されたバージョン:
- 9
-
フィールドのサマリー
フィールド -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明findGetter(Class<?> refc, String name, Class<?> type) static MethodHandlefindOwnSpecial(MethodHandles.Lookup lookup, String name, Class<?> rtype, Class<?>... ptypes) ルックアップを指定すると、findSpecial(Class, String, MethodType)を使用して、そのルックアップのクラスに対するメソッドを検索します。findOwnSpecial(String name, Class<?> rtype, Class<?>... ptypes) findSpecial(Class, String, MethodType)を使用して、そのルックアップのクラスのメソッドを検索します。static MethodHandlefindOwnStatic(MethodHandles.Lookup lookup, String name, Class<?> rtype, Class<?>... ptypes) ルックアップを指定すると、findStatic(Class, String, MethodType)を使用して、そのルックアップのクラスに対するメソッドを検索します。findOwnStatic(String name, Class<?> rtype, Class<?>... ptypes) findStatic(Class, String, MethodType)を使用して、そのルックアップのクラスのメソッドを検索します。findSpecial(Class<?> declaringClass, String name, MethodType type) 基礎となるルックアップに対してMethodHandles.Lookup.findSpecial(Class, String, MethodType, Class)を実行します。findStatic(Class<?> declaringClass, String name, MethodType type) 基礎となるルックアップに対してMethodHandles.Lookup.findStatic(Class, String, MethodType)を実行します。findVirtual(Class<?> declaringClass, String name, MethodType type) 基礎となるルックアップに対してMethodHandles.Lookup.findVirtual(Class, String, MethodType)を実行します。static MethodHandleunreflect(MethodHandles.Lookup lookup, Method m) static MethodHandleunreflectConstructor(MethodHandles.Lookup lookup, Constructor<?> c)
-
フィールド詳細
-
PUBLIC
public static final Lookup PUBLICMethodHandles.publicLookup()をラップする正規のLookupオブジェクトです。
-
-
コンストラクタの詳細
-
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- ゲッターが反射されないフィールド- 戻り値:
- 反射されないフィールド・ゲッター・ハンドル。
- スロー:
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- セッターが反射されていないフィールド- 戻り値:
- 未反射のフィールド・セッター・ハンドル。
- スロー:
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- メソッドのパラメータ型- 戻り値:
- メソッドのメソッド・ハンドル
-