クラスjava.lang.invoke.MethodType
の使用
-
MethodTypeを使用するパッケージ パッケージ 説明 java.lang Javaプログラミング言語の設計にあたり基本的なクラスを提供します。java.lang.invoke java.lang.invokeパッケージは、Java Virtual Machineとやりとりするための低レベルのプリミティブを提供します。jdk.dynalink invokedynamicコール・サイトをリンクするためのインタフェースとクラスが含まれています。jdk.dynalink.linker 独自の言語固有のオブジェクト・モデルと型変換を実装するために、言語ランタイムに必要なインタフェースとクラスが含まれています。jdk.dynalink.linker.support 言語ランタイムが、言語固有のオブジェクト・モデルを実装し、いくつかのクラスの基本的な実装とさまざまなユーティリティを提供することによってコンバージョンをより便利にするクラスが含まれています。 -
-
java.langでのMethodTypeの使用
MethodTypeを戻すjava.langのメソッド 修飾子と型 メソッド 説明 default MethodTypeStackWalker.StackFrame. getMethodType()このスタック・フレームによって表されるメソッドのパラメータ型と戻り値の型を表すMethodTypeを返します。 -
java.lang.invokeでのMethodTypeの使用
MethodTypeを返すjava.lang.invokeのメソッド 修飾子と型 メソッド 説明 MethodTypeVarHandle. accessModeType(VarHandle.AccessMode accessMode)このVarHandleのアクセス・モードの型とアクセス・モードを取得します。MethodTypeMethodType. appendParameterTypes(Class<?>... ptypesToInsert)追加のパラメータの型を持つメソッド型を検索または作成します。MethodTypeMethodType. appendParameterTypes(List<Class<?>> ptypesToInsert)追加のパラメータの型を持つメソッド型を検索または作成します。MethodTypeMethodType. changeParameterType(int num, Class<?> nptype)1つのパラメータの型が異なるメソッド型を検索または作成します。MethodTypeMethodType. changeReturnType(Class<?> nrtype)戻り値の型が異なるメソッド型を検索または作成します。MethodTypeMethodType. dropParameterTypes(int start, int end)いくつかのパラメータの型が削除されたメソッド型を検索または作成します。MethodTypeMethodType. erase()すべての参照型を消去してObjectにします。static MethodTypeMethodType. fromMethodDescriptorString(String descriptor, ClassLoader loader)バイト・コード記述子のスペリングに基づいてメソッド型のインスタンスを検索または作成します。MethodTypeMethodType. generic()すべての型(参照とプリミティブの両方)をObjectに変換します。static MethodTypeMethodType. genericMethodType(int objectArgCount)コンポーネントがすべてObjectであるようなメソッド型を検索または作成します。static MethodTypeMethodType. genericMethodType(int objectArgCount, boolean finalArray)Objectとオプションで末尾のObject[]配列をコンポーネントに持つメソッド型を検索または作成します。MethodTypeMethodHandleInfo. getMethodType()解決されたシンボリック参照の公称型をメソッド型として表現して返します。MethodTypeMethodType. insertParameterTypes(int num, Class<?>... ptypesToInsert)追加のパラメータの型を持つメソッド型を検索または作成します。MethodTypeMethodType. insertParameterTypes(int num, List<Class<?>> ptypesToInsert)追加のパラメータの型を持つメソッド型を検索または作成します。static MethodTypeMethodType. methodType(Class<?> rtype)指定されたコンポーネントを持つメソッド型を検索または作成します。static MethodTypeMethodType. methodType(Class<?> rtype, Class<?> ptype0)指定されたコンポーネントを持つメソッド型を検索または作成します。static MethodTypeMethodType. methodType(Class<?> rtype, Class<?>[] ptypes)指定されたメソッド型のインスタンスを検索または作成します。static MethodTypeMethodType. methodType(Class<?> rtype, Class<?> ptype0, Class<?>... ptypes)指定されたコンポーネントを持つメソッド型を検索または作成します。static MethodTypeMethodType. methodType(Class<?> rtype, MethodType ptypes)指定されたコンポーネントを持つメソッド型を検索または作成します。static MethodTypeMethodType. methodType(Class<?> rtype, List<Class<?>> ptypes)指定されたコンポーネントを持つメソッド型を検索または作成します。MethodTypeCallSite. type()このコール・サイトのターゲットの型を返します。MethodTypeMethodHandle. type()このメソッド・ハンドルの型を報告します。MethodTypeMethodType. unwrap()すべてのラッパー型を対応するプリミティブ型に変換します。MethodTypeMethodType. wrap()すべてのプリミティブ型を対応するラッパー型に変換します。MethodType型のパラメータを持つjava.lang.invokeのメソッド 修飾子と型 メソッド 説明 static CallSiteLambdaMetafactory. altMetafactory(MethodHandles.Lookup caller, String invokedName, MethodType invokedType, Object... args)適切な型適応および引数の部分評価の後、指定されたMethodHandleへの委譲により、1つ以上のインタフェースを実装する単純な関数オブジェクトの作成を容易にします。MethodHandleMethodHandle. asType(MethodType newType)現在のメソッド・ハンドルの型を新しい型に適応させるアダプタ・メソッド・ハンドルを生成します。MethodHandleMethodHandles.Lookup. bind(Object receiver, String name, MethodType type)非staticメソッドの早期バインド・メソッド・ハンドルを生成します。static MethodHandleMethodHandles. empty(MethodType type)任意の引数を無視し、何もせず、戻り値の型に応じて適切な既定値を返す、リクエストされた型のメソッド・ハンドルを生成します。static MethodHandleMethodHandles. exactInvoker(MethodType type)特殊なインボーカ・メソッド・ハンドルを生成します(これを使用すれば、指定された型の任意のメソッド・ハンドルを、invokeExactを使用する場合と同様に呼び出すことができる)。static MethodHandleMethodHandles. explicitCastArguments(MethodHandle target, MethodType newType)指定されたメソッド・ハンドルの型を新しい型に適応させるために、引数と戻り値の型の変換をペア単位で行うメソッド・ハンドルを生成します。MethodHandleMethodHandles.Lookup. findConstructor(Class<?> refc, MethodType type)指定された型のコンストラクタを使ってオブジェクトの作成と初期化を行うメソッド・ハンドルを生成します。MethodHandleMethodHandles.Lookup. findSpecial(Class<?> refc, String name, MethodType type, Class<?> specialCaller)仮想メソッドの早期にバインドされるメソッド・ハンドルを生成します。MethodHandleMethodHandles.Lookup. findStatic(Class<?> refc, String name, MethodType type)staticメソッドのメソッド・ハンドルを生成します。MethodHandleMethodHandles.Lookup. findVirtual(Class<?> refc, String name, MethodType type)仮想メソッドのメソッド・ハンドルを生成します。static MethodHandleMethodHandles. invoker(MethodType type)特殊なインボーカ・メソッド・ハンドルを生成します(これを使用すれば、指定された型と互換性のある任意のメソッド・ハンドルを、invokeを使用する場合と同様に呼び出すことができる)。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 invokedName, MethodType invokedType, MethodType samMethodType, MethodHandle implMethod, MethodType instantiatedMethodType)適切な型適応および引数の部分評価の後、指定されたMethodHandleへの委譲により、1つ以上のインタフェースを実装する単純な関数オブジェクトの作成を容易にします。static MethodTypeMethodType. methodType(Class<?> rtype, MethodType ptypes)指定されたコンポーネントを持つメソッド型を検索または作成します。static MethodHandleMethodHandles. permuteArguments(MethodHandle target, MethodType newType, int... reorder)引数の順序を変更することによって、指定されたメソッド・ハンドルの呼出し順序を新しい型に適応させるメソッド・ハンドルを生成します。static MethodHandleMethodHandles. spreadInvoker(MethodType type, int leadingArgCount)指定されたtypeの任意のメソッド・ハンドルを呼び出すメソッド・ハンドルを生成しますが、その際、指定された数の末尾の引数が単一の末尾のObject[]配列で置き換えられます。static StringMethodHandleInfo. toString(int kind, Class<?> defc, String name, MethodType type)MethodHandleInfoの文字列表現を、そのシンボリック参照の4つの部分を基に返します。static MethodHandleMethodHandles. varHandleExactInvoker(VarHandle.AccessMode accessMode, MethodType type)関連付けられたアクセス・モードの型が指定された型と互換性のあるVarHandle上で、シグネチャ・ポリモーフィック・アクセス・モード・メソッドを呼び出すために使用できる特別な「呼び出しメソッドhandle」を生成します。static MethodHandleMethodHandles. varHandleInvoker(VarHandle.AccessMode accessMode, MethodType type)関連付けられたアクセス・モードの型が指定された型と互換性のあるVarHandle上で、シグネチャ・ポリモーフィック・アクセス・モード・メソッドを呼び出すために使用できる特別な「呼び出しメソッドhandle」を生成します。MethodType型のパラメータを持つjava.lang.invokeのコンストラクタ コンストラクタ 説明 ConstantCallSite(MethodType targetType, MethodHandle createTargetHook)永続的なターゲットを持つコール・サイトを作成します(コール・サイト自体にバインドされる場合があります)。MutableCallSite(MethodType type)指定されたメソッド型を持つ空のコール・サイト・オブジェクトを作成します。VolatileCallSite(MethodType type)ターゲットへのvolatileバインディングを持つコール・サイトを作成します。 -
jdk.dynalinkでのMethodTypeの使用
MethodTypeを戻すjdk.dynalinkのメソッド 修飾子と型 メソッド 説明 MethodTypeCallSiteDescriptor. getMethodType()コール・サイトのメソッドの型。型MethodTypeのパラメータを持つjdk.dynalinkのメソッド 修飾子と型 メソッド 説明 CallSiteDescriptorCallSiteDescriptor. changeMethodType(MethodType newMethodType)メソッドの型がこの記述子と異なる呼び出しサイト記述子を検索または作成します。protected CallSiteDescriptorCallSiteDescriptor. changeMethodTypeInternal(MethodType newMethodType)メソッドの型がこの記述子と異なる呼び出しサイト記述子を検索または作成します。型MethodTypeのパラメータを持つjdk.dynalinkのコンストラクタ コンストラクタ 説明 CallSiteDescriptor(MethodHandles.Lookup lookup, Operation operation, MethodType methodType)新しいコール・サイト記述子を作成します。 -
jdk.dynalink.linkerでのMethodTypeの使用
型MethodTypeのパラメータを持つjdk.dynalink.linkerのメソッド 修飾子と型 メソッド 説明 GuardedInvocationGuardedInvocation. asType(MethodType newType)MethodHandle.asType(MethodType)がその呼び出しとそのガードに適用されたかのように、呼び出しのタイプを変更します((戻り値の型がブール値に変更され、ガードに対してパラメータ・カウントが切り捨てられる可能性があります)が1つの場合)。GuardedInvocationGuardedInvocation. asType(LinkerServices linkerServices, MethodType newType)LinkerServices.asType(MethodHandle, MethodType)がその呼び出しとそのガードに適用されたかのように、呼び出しのタイプを変更します((戻り値の型がブール値に変更され、ガードに対してパラメータ・カウントが切り捨てられる可能性があります)が1つの場合)。MethodHandleLinkerServices. asType(MethodHandle handle, MethodType fromType)MethodHandle.asType(MethodType)と同様に、使用可能なすべてのGuardingTypeConverterFactory実装によって生成されたメソッド・ハンドルをフックし、言語固有の型のパラメータの強制変換を提供します。MethodHandleMethodTypeConversionStrategy. asType(MethodHandle target, MethodType newType)メソッド・ハンドルを新しい型に変換します。default MethodHandleLinkerServices. asTypeLosslessReturn(MethodHandle handle, MethodType fromType)LinkerServices.asType(MethodHandle, MethodType)と似ていますが、戻り値の型変換を特別に扱います。GuardedInvocationGuardedInvocation. asTypeSafeReturn(LinkerServices linkerServices, MethodType newType)LinkerServices.asTypeLosslessReturn(MethodHandle, MethodType)がその呼び出しに適用され、(戻り値の型がブール値に変更され、ガードに対してパラメータ・カウントが切り捨てられる可能性があります)が1つの場合、LinkerServices.asType(MethodHandle, MethodType)がガードに適用されたかのように、呼び出しのタイプを変更します。 -
jdk.dynalink.linker.supportでのMethodTypeの使用
型MethodTypeのパラメータを持つjdk.dynalink.linker.supportのメソッド 修飾子と型 メソッド 説明 static MethodHandleGuards. asType(MethodHandle test, MethodType type)ガードとして使用するためのメソッド・ハンドルを取得し、リクエストされた型に適合させますが、ブール値を返します。static MethodHandleGuards. asType(LinkerServices linkerServices, MethodHandle test, MethodType type)ガードとして使用するためのメソッド・ハンドルを取得し、リクエストされた型に適合させますが、ブール値を返します。MethodHandleLookup. findSpecial(Class<?> declaringClass, String name, MethodType type)基になるルックアップに対してMethodHandles.Lookup.findSpecial(Class, String, MethodType, Class)を実行します。MethodHandleLookup. findStatic(Class<?> declaringClass, String name, MethodType type)基になるルックアップに対してMethodHandles.Lookup.findStatic(Class, String, MethodType)を実行します。MethodHandleLookup. findVirtual(Class<?> declaringClass, String name, MethodType type)基になるルックアップに対してMethodHandles.Lookup.findVirtual(Class, String, MethodType)を実行します。static MethodHandleGuards. isArray(int pos, MethodType type)指定された位置の引数がJava配列の場合にtrueを返すメソッド・ハンドルを作成します。static MethodHandleGuards. isInstance(Class<?> clazz, int pos, MethodType type)指定された型の引数を持つメソッド・ハンドルを作成しますが、ブール型の戻り値を持ちます。static MethodHandleGuards. isInstance(Class<?> clazz, MethodType type)指定された型の引数を持つメソッド・ハンドルを作成しますが、ブール型の戻り値を持ちます。static MethodHandleGuards. isOfClass(Class<?> clazz, MethodType type)指定された型の引数を持つがboolean戻り値を持つガード・メソッド・ハンドルを作成します。
-