モジュール jdk.dynalink
パッケージ jdk.dynalink

クラスNamedOperation

  • すべての実装されたインタフェース:
    Operation

    public final class NamedOperation
    extends Object
    implements Operation
    名前を別の操作に関連付ける操作。 通常は、固定名にバインドするために名前または索引を使用する操作で使用されます。 次に例を示します。
         new NamedOperation(
             new NamespaceOperation(
                 StandardOperation.GET,
                 StandardNamespace.PROPERTY),
             "color")
     
    適用されるオブジェクトでcolorという名前のプロパティを取得するための名前付き操作です。
         new NamedOperation(
             new NamespaceOperation(
                 StandardOperation.GET,
                 StandardNamespace.ELEMENT),
             3)
     
    は、インデックス3の要素を、それが適用されたコレクションから取得するための名前付き操作です(このコンテキストの「名前」は「アドレス」に似ており、テキスト名、数値インデックス、またはリンカーが理解できるその他の種類のアドレス指定の両方を含みます)。 このような場合、操作のコール・サイトの予期される署名は、nameパラメータを含まないように変更されます。 具体的には、すべてのStandardOperationメンバーのドキュメントに、名前付き操作への組込みによる影響が説明されています。

    NamedOperationは直接構築できますが、多くの場合、Operation.named(Object)ファクトリ・メソッドをかわりに使用すると便利です。次に例を示します。

        StandardOperation.GET
            .withNamespace(StandardNamespace.ELEMENT),
            .named(3)
         )
     

    NamedOperationは、ベースとしてNamespaceOperationとともによく使用されますが、ベースとして他の操作を持つこともできます(別の名前付き操作を除く)。 具体的には、StandardOperation.CALLStandardOperation.NEWの両方をNamedOperationと直接使用できます。 これらの操作の規約は、名前付き操作として使用されるときに、その名前が診断メッセージにのみ使用され、通常は呼出し先を取得したソース式のテキスト表現(StandardOperation.CALL.named("window.open")など)が含まれます。

    • コンストラクタの詳細

      • NamedOperation

        public NamedOperation​(Operation baseOperation,
                              Object name)
        新しい名前付き操作を作成します。
        パラメータ:
        baseOperation - 名前に関連付けられている基本操作。
        name - ベース操作に関連付けられている名前。 名前は必ずしも文字列であるとはかぎりませんが、任意のオブジェクトにすることができます。 この名前はアドレス指定に使用されるため、配列またはリストへのインデックスとして使用する場合はIntegerになります。
        例外:
        NullPointerException - baseOperationまたはnameのいずれかがnullの場合。
        IllegalArgumentException - baseOperation自体がNamedOperationの場合。
    • メソッドの詳細

      • getBaseOperation

        public Operation getBaseOperation()
        この名前付き操作の基本操作を返します。
        戻り値:
        この名前付き操作の基本操作。
      • getName

        public Object getName()
        この名前付き操作の名前を返します。
        戻り値:
        この名前付き操作の名前。
      • changeName

        public final NamedOperation changeName​(String newName)
        名前だけで異なる名前付き操作を検索または作成します。
        パラメータ:
        newName - 古い名前を置き換える新しい名前。
        戻り値:
        変更された名前を持つ名前付き操作。
        例外:
        NullPointerException - 名前がnullの場合。
      • equals

        public boolean equals​(Object obj)
        この名前付き操作を別のオブジェクトと比較します。 他のオブジェクトも名前付き操作であり、それらのベース操作と名前が等しい場合はtrueを返します。
        オーバーライド:
        equals、クラスObject
        パラメータ:
        obj - 比較対象の参照オブジェクト。
        戻り値:
        このオブジェクトがobj引数と同じである場合はtrue、それ以外の場合はfalse
        関連項目:
        Object.hashCode()HashMap
      • toString

        public String toString()
        この名前付き操作の文字列表現を返します。 これは、baseOperation.toString() + ":" + name.toString()と等しくなるように定義されています。
        オーバーライド:
        toString、クラスObject
        戻り値:
        このオブジェクトの文字列表現
      • getBaseOperation

        public static Operation getBaseOperation​(Operation op)
        渡された操作が名前付き操作の場合、そのgetBaseOperation()を戻し、それ以外の場合はその操作をそのまま戻します。
        パラメータ:
        op - 操作
        戻り値:
        渡された操作の基礎操作。
      • getName

        public static Object getName​(Operation op)
        渡された操作が名前付き操作の場合は、そのgetName()を戻し、それ以外の場合はNULLを戻します。 名前付き操作オブジェクトにはnull名を指定できないため、nullを返すことは、渡された操作が実際には名前付き操作ではないことを示しています。
        パラメータ:
        op - 操作
        戻り値:
        渡された操作の名前。名前付き操作でない場合はnull。