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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal NamedOperationchangeName(String newName) 查找或创建一个与此命名操作仅在名称上不同的命名操作。boolean将此命名操作与另一个对象进行比较。返回此命名操作的基本操作。static Operation如果传递的操作是一个命名操作,则返回其getBaseOperation(),否则返回操作本身。getName()返回此命名操作的名称。static Object如果传递的操作是一个命名操作,则返回其getName(),否则返回null。inthashCode()返回此命名操作的哈希码。toString()返回此命名操作的字符串表示。Methods declared in class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods 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。
-