モジュール java.base
パッケージ java.lang.constant

インタフェースMethodHandleDesc

  • すべてのスーパー・インタフェース:
    ConstantDesc
    既知のすべてのサブインタフェース:
    DirectMethodHandleDesc

    public interface MethodHandleDesc
    extends ConstantDesc
    APIの注:
    将来、Java言語が許可すると、MethodHandleDescsealedインタフェースになる場合があり、明示的に許可されている型を除いてサブクラス化が禁止されます。 非プラットフォーム・クラスは、MethodHandleDescを直接実装することはできません。
    導入されたバージョン:
    12
    • メソッドの詳細

      • of

        static DirectMethodHandleDesc of​(DirectMethodHandleDesc.Kind kind,
                                         ClassDesc owner,
                                         String name,
                                         String lookupDescriptor)
        宣言されたメソッドの呼出し、コンストラクタの呼出し、またはフィールドへのアクセスに対応するMethodHandleDescを作成します。

        ルックアップ記述子文字列の形式は、CONSTANT_MethodHandle_infoの様々なバリアントと、MethodHandles.Lookupのルックアップ・メソッドの形式と同じです。 メソッドまたはコンストラクタのコールの場合、メソッド・タイプ記述子として解釈されます。フィールド・アクセスの場合は、フィールド記述子として解釈されます。 kindCONSTRUCTORの場合、nameパラメータは無視され、参照記述子の戻り型はvoidである必要があります。 kindが仮想メソッド呼出しに対応している場合、参照タイプにはメソッド・パラメータが含まれますがレシーバ・タイプは含まれません。

        パラメータ:
        kind - 記述するメソッド・ハンドルの種類
        owner - メソッド、コンストラクタまたはフィールドを含むクラスを記述するClassDesc
        name - メソッドまたはフィールドの非修飾名(kindCONSTRUCTORの場合、無視)
        lookupDescriptor - メソッド記述子の文字列。リクエストがメソッド呼出し用の場合は参照タイプ、リクエストがフィールドまたはコンストラクタ用の場合は呼出しタイプを記述
        戻り値:
        MethodHandleDesc
        例外:
        NullPointerException - 無視されない引数のいずれかがnullの場合
        Java™仮想マシン仕様:
        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のルックアップ・メソッドの場合と同じです。 kindCONSTRUCTORの場合、名前は無視され、参照タイプの戻りタイプはvoidである必要があります。 kindが仮想メソッド呼出しに対応している場合、参照タイプにはメソッド・パラメータが含まれますがレシーバ・タイプは含まれません。

        パラメータ:
        kind - 記述するメソッド・ハンドルの種類。SPECIAL, VIRTUAL, STATIC, INTERFACE_SPECIAL, INTERFACE_VIRTUAL, INTERFACE_STATIC, CONSTRUCTORのいずれかである必要があります。
        owner - メソッドまたはコンストラクタを含むクラスを記述するClassDesc
        name - メソッド(kindCONSTRUCTORの場合、無視)の未修飾名
        lookupMethodType - 参照タイプを説明するMethodTypeDesc
        戻り値:
        MethodHandleDesc
        例外:
        NullPointerException - 無視されない引数がある場合
        IllegalArgumentException - nameの形式が正しくない場合、または種類が無効である場合
        Java™仮想マシン仕様:
        4.2.2未修飾名
      • ofField

        static DirectMethodHandleDesc ofField​(DirectMethodHandleDesc.Kind kind,
                                              ClassDesc owner,
                                              String fieldName,
                                              ClassDesc fieldType)
        フィールドにアクセスするメソッド・ハンドルに対応するMethodHandleDescを作成します。
        パラメータ:
        kind - 記述するメソッド・ハンドルの種類。GETTERSETTERSTATIC_GETTERSTATIC_SETTERのいずれかである必要があります。
        owner - フィールドを含むクラスを記述するClassDesc
        fieldName - フィールドの未修飾名
        fieldType - フィールドのタイプについて説明するClassDesc
        戻り値:
        MethodHandleDesc
        例外:
        NullPointerException - 引数が1つでもnullの場合
        IllegalArgumentException - kindが有効な値のいずれでもない場合、またはフィールド名が無効な場合
        Java™仮想マシン仕様:
        4.2.2未修飾名
      • invocationType

        MethodTypeDesc invocationType()
        この名目記述子で記述されるメソッド・ハンドルの呼出しタイプを記述するMethodTypeDescを返します。 起動タイプは、起動された(レシーバを含む(存在する場合))によって消費されるスタック値の完全なセットを説明します。
        戻り値:
        メソッド・ハンドル・タイプを記述するMethodHandleDesc
      • equals

        boolean equals​(Object o)
        等価性のために、指定されたオブジェクトをこの記述子と比較します。 trueを返します。指定したオブジェクトがMethodHandleDescでもある場合に限り、どちらもメソッド・ハンドルの同じ名目説明をエンコードします。
        オーバーライド:
        equals 、クラス:  Object
        パラメータ:
        o - 他のオブジェクト
        戻り値:
        この記述子が他のオブジェクトと等しいかどうか
        関連項目:
        Object.hashCode()HashMap