java.lang.Object
jdk.dynalink.NamedOperation
- 所有已实现的接口:
-
Operation
将名称与另一个操作关联的操作。通常与通常需要名称或索引的操作一起使用,以将它们绑定到固定名称。例如,
new NamedOperation( new NamespaceOperation( StandardOperation.GET, StandardNamespace.PROPERTY), "color")将是一个命名操作,用于获取应用于对象的名为"color"的属性,并且
new NamedOperation( new NamespaceOperation( StandardOperation.GET, StandardNamespace.ELEMENT), 3)将是一个命名操作,用于从应用于集合的索引3处获取元素(在此上下文中,"名称"类似于"地址",包括文本名称、数字索引或链接器可以理解的任何其他类型的寻址)。在这些情况下,操作的调用站点的预期签名将发生变化,不再包括名称参数。具体来说,所有
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 Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal NamedOperation
changeName
(String newName) 查找或创建一个与此命名操作仅在名称上不同的命名操作。boolean
将此命名操作与另一个对象进行比较。返回此命名操作的基本操作。static Operation
如果传递的操作是一个命名操作,则返回其getBaseOperation()
,否则返回操作本身。getName()
返回此命名操作的名称。static Object
如果传递的操作是一个命名操作,则返回其getName()
,否则返回null。int
hashCode()
返回此命名操作的哈希码。toString()
返回此命名操作的字符串表示。Methods declared in class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods declared in interface jdk.dynalink.Operation
named, withNamespace, withNamespaces
-
Constructor Details
-
NamedOperation
创建一个新的命名操作。- 参数:
-
baseOperation
- 与名称关联的基本操作。 -
name
- 与基本操作关联的名称。请注意,名称不一定是字符串,而可以是任意对象。由于名称用于寻址,因此当需要用作数组或列表等的索引时,它可以是一个Integer
。 - 抛出:
-
NullPointerException
- 如果baseOperation
或name
为null。 -
IllegalArgumentException
- 如果baseOperation
本身是一个NamedOperation
。
-
-
Method Details
-
getBaseOperation
返回此命名操作的基本操作。- 返回:
- 此命名操作的基本操作。
-
getName
返回此命名操作的名称。- 返回:
- 此命名操作的名称。
-
changeName
查找或创建一个与此命名操作仅在名称上不同的命名操作。- 参数:
-
newName
- 要替换旧名称的新名称。 - 返回:
- 具有更改名称的命名操作。
- 抛出:
-
NullPointerException
- 如果名称为null。
-
equals
将此命名操作与另一个对象进行比较。如果另一个对象也是一个命名操作,并且它们的基本操作和名称都相等,则返回true。 -
hashCode
public int hashCode()返回此命名操作的哈希码。它被定义为baseOperation.hashCode() + 31 * name.hashCode()
。 -
toString
返回此命名操作的字符串表示。它被定义为baseOperation.toString() + ":" + name.toString()
。 -
getBaseOperation
如果传递的操作是一个命名操作,则返回其getBaseOperation()
,否则返回操作本身。- 参数:
-
op
- 操作 - 返回:
- 传递操作的基本操作。
-
getName
如果传递的操作是一个命名操作,则返回其getName()
,否则返回null。请注意,命名操作对象永远不会具有空名称,因此返回null表明传递的操作实际上不是一个命名操作。- 参数:
-
op
- 操作 - 返回:
- 传递操作中的名称,如果它不是一个命名操作,则返回null。
-