インタフェースMethodHandleDesc
- すべてのスーパー・インタフェース:
ConstantDesc
- 既知のすべてのサブインタフェース:
DirectMethodHandleDesc
public sealed interface MethodHandleDesc extends ConstantDesc permits DirectMethodHandleDesc (not exhaustive)
-
メソッドのサマリー
修飾子と型メソッド説明default MethodHandleDescasType(MethodTypeDesc type) MethodHandle.asType(MethodType)が適応するこのメソッド・ハンドルを説明するMethodHandleDescを返します。boolean等価性のために、指定されたオブジェクトをこの記述子と比較します。この名目記述子で記述されるメソッド・ハンドルの呼出しタイプを記述するMethodTypeDescを返します。static DirectMethodHandleDescof(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String name, String lookupDescriptor) 宣言されたメソッドの呼出し、コンストラクタの呼出し、またはフィールドへのアクセスに対応するMethodHandleDescを作成します。static DirectMethodHandleDescofConstructor(ClassDesc owner, ClassDesc... paramTypes) コンストラクタの呼出しに対応するMethodHandleDescを返しますstatic DirectMethodHandleDescofField(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String fieldName, ClassDesc fieldType) フィールドにアクセスするメソッド・ハンドルに対応するMethodHandleDescを作成します。static DirectMethodHandleDescofMethod(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String name, MethodTypeDesc lookupMethodType) 宣言されたメソッドまたはコンストラクタの呼出しに対応するMethodHandleDescを作成します。
-
メソッドの詳細
-
of
static DirectMethodHandleDesc of(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String name, String lookupDescriptor) 宣言されたメソッドの呼出し、コンストラクタの呼出し、またはフィールドへのアクセスに対応するMethodHandleDescを作成します。ルックアップ記述子文字列の形式は、
CONSTANT_MethodHandle_infoの様々なバリアントと、MethodHandles.Lookupのルックアップ・メソッドの形式と同じです。 メソッドまたはコンストラクタのコールの場合、メソッド・タイプ記述子として解釈されます。フィールド・アクセスの場合は、フィールド記述子として解釈されます。kindがCONSTRUCTORの場合、nameパラメータは無視され、ルックアップ記述子の戻り型はvoidである必要があります。kindが仮想メソッド呼出しに対応している場合、ルックアップ・タイプにはメソッド・パラメータが含まれますがレシーバ・タイプは含まれません。- パラメータ:
kind- 記述するメソッド・ハンドルの種類owner- メソッド、コンストラクタまたはフィールドを含むクラスを記述するClassDescname- メソッドまたはフィールドの非修飾名(kindがCONSTRUCTORの場合、無視)lookupDescriptor- メソッド記述子の文字列。リクエストがメソッド呼出し用の場合はルックアップ・タイプ、リクエストがフィールドまたはコンストラクタ用の場合は呼出しタイプを記述- 戻り値:
- MethodHandleDesc
- スロー:
NullPointerException- 無視されない引数のいずれかがnullの場合IllegalArgumentException- 記述子文字列が有効なメソッドまたはフィールド記述子でないかどうか- Java Virtual Machine仕様を参照してください:
-
4.4.8 CONSTANT_MethodHandle_info構造
4.2.2未修飾名
4.3.2フィールド記述子
4.3.3メソッド記述子
-
ofMethod
static DirectMethodHandleDesc ofMethod(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String name, MethodTypeDesc lookupMethodType) 宣言されたメソッドまたはコンストラクタの呼出しに対応するMethodHandleDescを作成します。ルックアップ記述子の文字列の形式は、
MethodHandles.Lookupのルックアップ・メソッドの場合と同じです。kindがCONSTRUCTORの場合、名前は無視され、ルックアップ・タイプの戻りタイプはvoidである必要があります。kindが仮想メソッド呼出しに対応している場合、ルックアップ・タイプにはメソッド・パラメータが含まれますがレシーバ・タイプは含まれません。- パラメータ:
kind- 記述するメソッド・ハンドルの種類。SPECIAL, VIRTUAL, STATIC, INTERFACE_SPECIAL, INTERFACE_VIRTUAL, INTERFACE_STATIC, CONSTRUCTORのいずれかである必要があります。owner- メソッドまたはコンストラクタを含むクラスを記述するClassDescname- メソッド(kindがCONSTRUCTORの場合、無視)の未修飾名lookupMethodType- ルックアップ・タイプを説明するMethodTypeDesc- 戻り値:
- MethodHandleDesc
- スロー:
NullPointerException- 無視されない引数がある場合IllegalArgumentException-nameの形式が正しくない場合、または種類が無効である場合- Java Virtual Machine仕様を参照してください:
-
4.2.2 未修飾名
-
ofField
static DirectMethodHandleDesc ofField(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String fieldName, ClassDesc fieldType) フィールドにアクセスするメソッド・ハンドルに対応するMethodHandleDescを作成します。- パラメータ:
kind- 記述するメソッド・ハンドルの種類。GETTER、SETTER、STATIC_GETTER、STATIC_SETTERのいずれかである必要があります。owner- フィールドを含むクラスを記述するClassDescfieldName- フィールドの未修飾名fieldType- フィールドのタイプについて説明するClassDesc- 戻り値:
- MethodHandleDesc
- スロー:
NullPointerException- 引数が1つでもnullの場合IllegalArgumentException-kindが有効な値のいずれでもない場合、またはフィールド名が無効な場合- Java Virtual Machine仕様を参照してください:
-
4.2.2 未修飾名
-
ofConstructor
static DirectMethodHandleDesc ofConstructor(ClassDesc owner, ClassDesc... paramTypes) コンストラクタの呼出しに対応するMethodHandleDescを返します- パラメータ:
owner- コンストラクタを含むクラスを記述するClassDescparamTypes-ClassDescsコンストラクタのパラメータ型を記述しています- 戻り値:
- MethodHandleDesc
- スロー:
NullPointerException- 引数またはその内容がnullの場合
-
asType
default MethodHandleDesc asType(MethodTypeDesc type) MethodHandle.asType(MethodType)が適応するこのメソッド・ハンドルを説明するMethodHandleDescを返します。- パラメータ:
type- 新しいメソッド・タイプを記述するMethodHandleDesc- 戻り値:
- 適合メソッド・ハンドル用のMethodHandleDesc
- スロー:
NullPointerException- 引数がnullの場合
-
invocationType
MethodTypeDesc invocationType()この名目記述子で記述されるメソッド・ハンドルの呼出しタイプを記述するMethodTypeDescを返します。 起動タイプは、起動された(レシーバを含む(存在する場合))によって消費されるスタック値の完全なセットを説明します。- 戻り値:
- メソッド・ハンドル・タイプを記述するMethodHandleDesc
-
resolveConstantDesc
インタフェースからコピーされた説明:ConstantDescJVMS 5.4.3の解決動作およびJVMS 5.4.4のアクセス制御動作をエミュレートして、この記述子を反映して解決します。 解決およびアクセス制御コンテキストは、MethodHandles.Lookupパラメータによって提供されます。 結果の値のキャッシュは実行されません。- 定義:
- インタフェース
ConstantDesc内のresolveConstantDesc - パラメータ:
lookup- 名前解決およびアクセス制御コンテキストを提供するためのMethodHandles.Lookup- 戻り値:
- 解決済定数値
- スロー:
ReflectiveOperationException- 解決の過程でクラス、メソッドまたはフィールドを反映的に解決できなかった場合- 導入されたバージョン:
- 21
-
equals
boolean equals(Object o) 等価性のために、指定されたオブジェクトをこの記述子と比較します。trueを返します。指定したオブジェクトがMethodHandleDescでもある場合に限り、どちらもメソッド・ハンドルの同じ名目説明をエンコードします。
-