Класс 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)
будет именованной операцией для получения элемента с индексом 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").
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
NamedOperation |
Создает новую именованную операцию. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final NamedOperation |
changeName |
Находит или создает именованную операцию, которая отличается от этой только именем. |
boolean |
equals |
Сравнивает эту именованную операцию с другим объектом. |
Operation |
getBaseOperation() |
Возвращает базовую операцию этой именованной операции. |
static Operation |
getBaseOperation |
Если переданная операция является именованной операцией, возвращает её getBaseOperation(), в противном случае возвращает операцию как есть. |
Object |
getName() |
Возвращает имя этой именованной операции. |
static Object |
getName |
Если переданная операция — именованная операция, возвращает её getName(), в противном случае возвращает null. |
int |
hashCode() |
Возвращает хэш-код этой именованной операции. |
String |
toString() |
Возвращает строковое представление этой именованной операции. |
Методы, унаследованные от класса java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Методы, унаследованные от интерфейса jdk.dynalink.Operation
named, withNamespace, withNamespaces
Подробное описание конструкторов
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)
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- ссылка на объект для сравнения. - Возвращает:
-
trueесли этот объект такой же, как аргумент obj;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, если это не именованная операция.
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/jdk.dynalink/jdk/dynalink/NamedOperation.html