クラスjava.lang.invoke.MethodHandles.Lookup
の使用
MethodHandles.Lookupを使用するパッケージ
パッケージ
説明
Javaプログラミング言語の設計にあたり基本的なクラスを提供します。
クラス・ファイルの解析、生成および変換ライブラリを提供します。
クラスやメソッド・ハンドルなどのランタイム・エンティティ用に「名目記述子」を表すクラスおよびインタフェース、および定数プール・エントリや
invokedynamicコール・サイトなどのクラス・ファイル・エンティティ用に「名目記述子」を表すクラスおよびインタフェース。java.lang.invokeパッケージは、Java Virtual Machineとやりとりするための低レベルのプリミティブを提供します。java.lang.runtimeパッケージでは、Java言語の低レベルのランタイム・サポートが提供されます。invokedynamicコール・サイトのリンクに使用されるインタフェースおよびクラスが含まれます。
独自の言語固有のオブジェクト・モデルおよび型変換を実装するために言語ランタイムに必要なインタフェースおよびクラスが含まれます。
言語ランタイムが独自の言語固有のオブジェクト・モデルおよび型変換を実装しやすくするために、一部のクラスの基本的な実装と様々なユーティリティを提供することで、より便利なクラスが含まれています。
-
java.langでのMethodHandles.Lookupの使用
型MethodHandles.Lookupのパラメータを持つjava.langのメソッド修飾子と型メソッド説明Double.resolveConstantDesc(MethodHandles.Lookup lookup) このインスタンスをConstantDescとして解決します。その結果がインスタンス自体です。Float.resolveConstantDesc(MethodHandles.Lookup lookup) このインスタンスをConstantDescとして解決します。その結果がインスタンス自体です。Integer.resolveConstantDesc(MethodHandles.Lookup lookup) このインスタンスをConstantDescとして解決します。その結果がインスタンス自体です。Long.resolveConstantDesc(MethodHandles.Lookup lookup) このインスタンスをConstantDescとして解決します。その結果がインスタンス自体です。String.resolveConstantDesc(MethodHandles.Lookup lookup) このインスタンスをConstantDescとして解決します。その結果がインスタンス自体です。 -
java.lang.classfileでのMethodHandles.Lookupの使用
型MethodHandles.Lookupのパラメータを持つjava.lang.classfileのメソッド修飾子と型メソッド説明static ClassHierarchyResolverClassHierarchyResolver.ofClassLoading(MethodHandles.Lookup lookup) リフレクションを含むMethodHandles.Lookupからアクセス可能なクラスを介してクラス階層情報を抽出するClassHierarchyResolverを返します。 -
java.lang.constantでのMethodHandles.Lookupの使用
型MethodHandles.Lookupのパラメータを持つjava.lang.constantのメソッド修飾子と型メソッド説明DynamicCallSiteDesc.resolveCallSiteDesc(MethodHandles.Lookup lookup) 指定された引数を使用してブートストラップ・メソッドを最終的に起動し、結果のCallSiteを返します。Class<?> ClassDesc.resolveConstantDesc(MethodHandles.Lookup lookup) ConstantDesc.resolveConstantDesc(MethodHandles.Lookup lookup) DynamicConstantDesc.resolveConstantDesc(MethodHandles.Lookup lookup) MethodHandleDesc.resolveConstantDesc(MethodHandles.Lookup lookup) MethodTypeDesc.resolveConstantDesc(MethodHandles.Lookup lookup) -
java.lang.invokeでのMethodHandles.Lookupの使用
修飾子と型メソッド説明MethodHandles.Lookup.defineHiddenClass(byte[] bytes, boolean initialize, MethodHandles.Lookup.ClassOption... options) bytesからhiddenクラスまたはインタフェースを作成し、新しく作成されたクラスまたはインタフェースにLookupを返します。MethodHandles.Lookup.defineHiddenClassWithClassData(byte[] bytes, Object classData, boolean initialize, MethodHandles.Lookup.ClassOption... options) 関連付けられた「クラス・データ」を使用してbytesからhiddenクラスまたはインタフェースを作成し、新しく作成されたクラスまたはインタフェースでLookupを返します。MethodHandles.Lookup.dropLookupMode(int modeToDrop) このルックアップ・オブジェクトがメンバーを検索する同じルックアップ・クラスに、指定されたルックアップ・モードを失ったルックアップ・モードを使用してルックアップを作成します。指定された新しいルックアップ・クラスでルックアップを作成します。static MethodHandles.LookupMethodHandles.lookup()呼出し元のすべてのサポートされるバイトコード動作をエミュレートするためのフル機能を持つルックアップ・オブジェクトを返します。static MethodHandles.LookupMethodHandles.privateLookupIn(Class<?> targetClass, MethodHandles.Lookup caller) 「プライベート・アクセス」を含む、サポートされているすべてのバイトコード動作をエミュレートするために、ターゲット・クラスのlookupオブジェクトを返します。static MethodHandles.LookupMethodHandles.publicLookup()最小の信頼レベルを持つルックアップ・オブジェクトを返します。型MethodHandles.Lookupのパラメータを持つjava.lang.invokeのメソッド修飾子と型メソッド説明static CallSiteLambdaMetafactory.altMetafactory(MethodHandles.Lookup caller, String interfaceMethodName, MethodType factoryType, Object... args) 適切な型適応および引数の部分評価の後、指定されたMethodHandleへの委譲により、1つ以上のインタフェースを実装する単純な関数オブジェクトの作成を容易にします。static VarHandleConstantBootstraps.arrayVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> arrayClass) 配列型にVarHandleを検索します。static <T> TMethodHandles.classData(MethodHandles.Lookup caller, String name, Class<T> type) 指定されたcallerルックアップ・オブジェクトまたはnullのルックアップ・クラスに関連付けられた「クラス・データ」を返します。static <T> TMethodHandles.classDataAt(MethodHandles.Lookup caller, String name, Class<T> type, int index) 指定されたcallerルックアップ・オブジェクトのルックアップ・クラスに関連付けられているクラス・データがListの場合、「クラス・データ」の指定された索引にある要素を返します。static <E extends Enum<E>>
EConstantBootstraps.enumConstant(MethodHandles.Lookup lookup, String name, Class<E> type) nameによって指定された名前を持つtypeによって指定された型のenum定数を返します。static ObjectConstantBootstraps.explicitCast(MethodHandles.Lookup lookup, String name, Class<?> dstType, Object value) ソース・タイプから宛先タイプへの変換を適用します。static VarHandleConstantBootstraps.fieldVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType) インスタンス・フィールドのVarHandleを検索します。static ObjectConstantBootstraps.getStaticFinal(MethodHandles.Lookup lookup, String name, Class<?> type) クラスで宣言された静的な最終フィールドの値を返します。この値は、(または、プリミティブ値フィールドの場合はラッパー・クラスで宣言されます。)フィールド・タイプと同じですstatic ObjectConstantBootstraps.getStaticFinal(MethodHandles.Lookup lookup, String name, Class<?> type, Class<?> declaringClass) 静的最終フィールドの値を返します。static ObjectConstantBootstraps.invoke(MethodHandles.Lookup lookup, String name, Class<?> type, MethodHandle handle, Object... args) 指定された引数を使ってメソッド・ハンドルを呼び出した結果を返します。static CallSiteStringConcatFactory.makeConcat(MethodHandles.Lookup lookup, String name, MethodType concatType) 最適化された文字列連結メソッドの作成を容易にします。このメソッドを使用すると、既知の型の引数(型の適応後や引数の部分評価後など)を効率的に連結できます。static CallSiteStringConcatFactory.makeConcatWithConstants(MethodHandles.Lookup lookup, String name, MethodType concatType, String recipe, Object... constants) 最適化された文字列連結メソッドの作成を容易にします。このメソッドを使用すると、既知の型の引数(型の適応後や引数の部分評価後など)を効率的に連結できます。static CallSiteLambdaMetafactory.metafactory(MethodHandles.Lookup caller, String interfaceMethodName, MethodType factoryType, MethodType interfaceMethodType, MethodHandle implementation, MethodType dynamicMethodType) 適切な型適応および引数の部分評価の後、指定されたMethodHandleへの委譲により、1つ以上のインタフェースを実装する単純な関数オブジェクトの作成を容易にします。static ObjectConstantBootstraps.nullConstant(MethodHandles.Lookup lookup, String name, Class<?> type) typeで指定された参照型のnullオブジェクト参照を戻します。static Class<?> ConstantBootstraps.primitiveClass(MethodHandles.Lookup lookup, String name, Class<?> type) nameによって型記述子が指定されているプリミティブ型のClassミラーを戻します。static MethodHandles.LookupMethodHandles.privateLookupIn(Class<?> targetClass, MethodHandles.Lookup caller) 「プライベート・アクセス」を含む、サポートされているすべてのバイトコード動作をエミュレートするために、ターゲット・クラスのlookupオブジェクトを返します。<T extends Member>
TMethodHandleInfo.reflectAs(Class<T> expected, MethodHandles.Lookup lookup) メソッド、コンストラクタまたはフィールド・オブジクトの基礎となるメンバーをリフレクトします。static VarHandleConstantBootstraps.staticFieldVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType) 静的フィールドのVarHandleを検索します。 -
java.lang.runtimeでのMethodHandles.Lookupの使用
型MethodHandles.Lookupのパラメータを持つjava.lang.runtimeのメソッド修飾子と型メソッド説明static ObjectObjectMethods.bootstrap(MethodHandles.Lookup lookup, String methodName, TypeDescriptor type, Class<?> recordClass, String names, MethodHandle... getters) invokedynamicコール・サイトまたは動的な定数プール・エントリのコンポーネント名およびアクセッサ・メソッドの説明に基づいて、Object.equals(Object)、Object.hashCode()およびObject.toString()メソッドを生成するブートストラップ・メソッド。static CallSiteSwitchBootstraps.enumSwitch(MethodHandles.Lookup lookup, String invocationName, MethodType invocationType, Object... labels) 列挙型のターゲットにswitchを実装するinvokedynamicコール・サイトをリンクするためのブートストラップ・メソッド。static CallSiteSwitchBootstraps.typeSwitch(MethodHandles.Lookup lookup, String invocationName, MethodType invocationType, Object... labels) 参照タイプのターゲットにswitchを実装するinvokedynamicコール・サイトをリンクするためのブートストラップ・メソッド。 -
jdk.dynalinkでのMethodHandles.Lookupの使用
MethodHandles.Lookupを返すjdk.dynalinkのメソッド修飾子と型メソッド説明final MethodHandles.LookupSecureLookupSupplier.getLookup()このSecureLookupSupplierで保護されている参照を返します。protected final MethodHandles.LookupSecureLookupSupplier.getLookupPrivileged()このSecureLookupSupplierで保護されている参照を返します。型MethodHandles.Lookupのパラメータを持つjdk.dynalinkのコンストラクタ修飾子コンストラクタ説明CallSiteDescriptor(MethodHandles.Lookup lookup, Operation operation, MethodType methodType) 新しいコール・サイト記述子を作成します。指定されたルックアップに対して新しいセキュア・ルックアップ・サプライヤを作成します。 -
jdk.dynalink.linkerでのMethodHandles.Lookupの使用
型MethodHandles.Lookupの型引数を持つjdk.dynalink.linkerのメソッド・パラメータ修飾子と型メソッド説明GuardingTypeConverterFactory.convertToType(Class<?> sourceType, Class<?> targetType, Supplier<MethodHandles.Lookup> lookupSupplier) 指定されたソース・タイプの値を受け取り、指定されたターゲット・タイプに変換された値を戻すガード付き型変換を返します。 -
jdk.dynalink.linker.supportでのMethodHandles.Lookupの使用
型MethodHandles.Lookupのパラメータを持つjdk.dynalink.linker.supportのメソッド修飾子と型メソッド説明static MethodHandleLookup.findOwnSpecial(MethodHandles.Lookup lookup, String name, Class<?> rtype, Class<?>... ptypes) ルックアップを指定すると、Lookup.findSpecial(Class, String, MethodType)を使用して、そのルックアップのクラスに対するメソッドを検索します。static MethodHandleLookup.findOwnStatic(MethodHandles.Lookup lookup, String name, Class<?> rtype, Class<?>... ptypes) ルックアップを指定すると、Lookup.findStatic(Class, String, MethodType)を使用して、そのルックアップのクラスに対するメソッドを検索します。static MethodHandleLookup.unreflect(MethodHandles.Lookup lookup, Method m) unreflect(Method)を実行し、発生したIllegalAccessExceptionをIllegalAccessErrorに変換します。static MethodHandleLookup.unreflectConstructor(MethodHandles.Lookup lookup, Constructor<?> c) 型MethodHandles.Lookupのパラメータを持つjdk.dynalink.linker.supportのコンストラクタ修飾子コンストラクタ説明Lookup(MethodHandles.Lookup lookup) MethodHandles.Lookupのインスタンスにバインドされた新しいインスタンスを作成します。