- java.lang.Object
-
- jdk.dynalink.NamedOperation
-
- 实现的所有接口
-
Operation
public final class NamedOperationextends Objectimplements Operation
将名称与另一个操作相关联的操作。 通常用于通常采用名称或索引将其绑定到固定名称的操作。 例如new NamedOperation( new NamespaceOperation( StandardOperation.GET, StandardNamespace.PROPERTY), "color")
将是一个命名操作,用于获取应用它的对象上名为“color”的属性,以及new NamedOperation( new NamespaceOperation( StandardOperation.GET, StandardNamespace.ELEMENT), 3)
将是一个命名操作,用于从应用它的集合中获取索引3处的元素(在此上下文中的“name”类似于“address”,并包含文本名称,数字索引或链接器可以进行的任何其他类型的寻址了解)。 在这些情况下,操作的调用站点的预期签名将更改为不再包含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")
。
-
-
构造方法摘要
构造方法 构造器 描述 NamedOperation(Operation baseOperation, Object name)
创建一个新的命名操作。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 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()
返回此命名操作的字符串表示形式。-
声明方法的接口 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
- 如果名称为null。
-
equals
public boolean equals(Object obj)
将此命名操作与另一个对象进行比较。 如果另一个对象也是命名操作,并且它们的基本操作和名称相等,则返回true。- 重写:
-
equals
类Object
- 参数
-
obj
- 要与之比较的引用对象。 - 结果
-
true
如果此对象与obj参数相同; 否则为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
- 操作 - 结果
- 传递操作的基本操作。
-
-