Класс NamedOperation
- java.lang.Object
-
- jdk.dynalink.NamedOperation
- Все реализуемые интерфейсы:
Operation
public final class NamedOperation extends Object implements Operation
Операция, которая связывает имя с другой операцией. Обычно используется с операциями, которые обычно принимают имя или индекс, чтобы привязать их к фиксированному имени. Например,
new NamedOperation(
new NamespaceOperation(
StandardOperation.GET,
StandardNamespace.PROPERTY),
"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(Operation baseOperation,
Object name) | Создает новую именованную операцию. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
NamedOperation | changeName(String newName) | Находит или создает именованную операцию, которая отличается от этой только именем. |
boolean | equals(Object obj) | Сравнивает эту именованную операцию с другим объектом. |
Operation | getBaseOperation() | Возвращает базу операций этой именованной операции. |
static Operation | getBaseOperation(Operation op) | Если переданная операция является именованной операцией, возвращает ее |
Object | getName() | Возвращает имя этой именованной операции. |
static Object | getName(Operation op) | Если переданная операция является именованной операцией, возвращает ее |
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)
Сравнивает эту именованную операцию с другим объектом. Возвращает 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- операция - Возвращает:
- базовая операция переданной операции.
getName
public static Object getName(Operation op)
Если переданная операция является именованной операцией, возвращает ее getName(), в противном случае возвращает null. Обратите внимание, что объект именованной операции никогда не может иметь имя null, поэтому возврат null указывает на то, что переданная операция не является именованной операцией.
- Параметры:
-
op- операция - Возвращает:
- имя в переданной операции или null, если это не именованная операция.
© 1993, 2020, 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/11/docs/api/jdk.dynalink/jdk/dynalink/NamedOperation.html