- java.lang.Object
-
- jdk.dynalink.NamedOperation
-
- All Implemented Interfaces:
-
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.CALL
以及StandardOperation.NEW
都可以直接与NamedOperation
一起使用。 这些操作的合同使得当它们被用作命名操作时,它们的名称仅用于诊断消息,通常包含检索被调用方的源表达式的文本表示,例如StandardOperation.CALL.named("window.open")
。
-
-
构造方法摘要
构造方法 Constructor 描述 NamedOperation(Operation baseOperation, Object name)
创建一个新的命名操作。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 NamedOperation
changeName(String newName)
查找或创建与名称不同的命名操作。boolean
equals(Object obj)
将此命名操作与另一个对象进行比较。Operation
getBaseOperation()
返回此命名操作的基本操作。static Operation
getBaseOperation(Operation op)
如果传递的操作是命名操作,则返回其getBaseOperation()
,否则返回操作。Object
getName()
返回此命名操作的名称。static Object
getName(Operation op)
如果传递的操作是命名操作,则返回其getName()
,否则返回null。int
hashCode()
返回此命名操作的哈希码。String
toString()
返回此命名操作的字符串表示形式。-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface jdk.dynalink.Operation
named, withNamespace, withNamespaces
-
-
-
-
构造方法详细信息
-
NamedOperation
public NamedOperation(Operation baseOperation, Object name)
创建一个新的命名操作。- 参数
-
baseOperation
- 与名称相关联的基本操作。 -
name
- 与基本操作相关联的名称。 请注意,名称不一定是字符串,但可以是任意对象。 当名称用于寻址时,它可以是一个Integer
,意在用作数组或列表等的索引。 - 异常
-
NullPointerException
- 如果baseOperation
或name
为空。 -
IllegalArgumentException
- 如果baseOperation
本身是一个NamedOperation
。
-
-
方法详细信息
-
getBaseOperation
public Operation getBaseOperation()
返回此命名操作的基本操作。- 结果
- 这个命名操作的基本操作。
-
getName
public Object getName()
返回此命名操作的名称。- 结果
- 这个命名操作的名称。
-
changeName
public final NamedOperation changeName(String newName)
查找或创建与名称不同的命名操作。- 参数
-
newName
- 用新名称替换旧名称。 - 结果
- 名称更改名称的操作。
- 异常
-
NullPointerException
- 如果名称为空。
-
equals
public boolean equals(Object obj)
将此命名操作与另一个对象进行比较。 如果另一个对象也是一个命名操作,并且它们的基本操作和名称都相等,则返回true。- 重写:
-
equals
在类Object
- 参数
-
obj
- 与之比较的参考对象。 - 结果
-
如果此对象与obj参数相同,
true
; 否则为false
。 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
返回此命名操作的哈希码。 它被定义为等于baseOperation.hashCode() + 31 * name.hashCode()
。- 重写:
-
hashCode
在Object
- 结果
- 该对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
toString
public String toString()
返回此命名操作的字符串表示形式。 它被定义为等于baseOperation.toString() + ":" + name.toString()
。
-
getBaseOperation
public static Operation getBaseOperation(Operation op)
如果传递的操作是命名操作,则返回其getBaseOperation()
,否则返回操作。- 参数
-
op
- 操作 - 结果
- 基本操作的通过操作。
-
-