クラス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.constantでのMethodHandles.Lookupの使用
型MethodHandles.Lookupのパラメータを持つjava.lang.constantのメソッド修飾子と型メソッド説明DynamicCallSiteDesc.resolveCallSiteDesc(MethodHandles.Lookup lookup) 指定された引数を使用してブートストラップ・メソッドを最終的に起動し、結果のCallSiteを返します。ConstantDesc.resolveConstantDesc(MethodHandles.Lookup lookup) JVMS 5.4.3の解決動作およびJVMS 5.4.4のアクセス制御動作を反映して、この記述子を解決します。DynamicConstantDesc.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.getLookup()の値を返します。型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のインスタンスにバインドされた新しいインスタンスを作成します。