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 MethodHandle
findOwnSpecial
(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 MethodHandle
findOwnStatic
(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 MethodHandle
unreflect
(MethodHandles.Lookup lookup, Method m) static MethodHandle
unreflectConstructor
(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
- メソッドのパラメータ型- 戻り値:
- メソッドのメソッド・ハンドル
-