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

クラスNamedOperation

java.lang.Object
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)
 
(このコンテキストの"name"は、"address"と似ており、リンカーが理解できるテキスト名、数値インデックス、またはその他の種類のアドレス指定の両方を含みます)に適用されるコレクションからインデックス3の要素を取得するための名前付き操作になります。 このような場合、操作のコール・サイトの予期されるシグネチャは、名前パラメータが含まれないように変更されます。 具体的には、すべての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
      関連項目:
    • hashCode

      public int hashCode()
      この名前付き操作のハッシュ・コードを返します。 baseOperation.hashCode() + 31 * name.hashCode()と等しくなるように定義されています。
      オーバーライド:
      hashCode、クラスObject
      戻り値:
      このオブジェクトのハッシュ・コード値。
      関連項目:
    • 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。