Spec-Zone.ru › OpenJDK 27

Класс 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")
будет именованной операцией для получения свойства с именем "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").

Начиная с:
9

Краткое описание конструкторов

Конструктор Описание
NamedOperation(Operation baseOperation, Object name)
Создаёт новую именованную операцию.

Краткое описание методов

Модификатор и тип Метод Описание
final 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()
Возвращает строковое представление этой именованной операции.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения определённого промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения определённого промежутка реального времени.

Методы, объявленные в интерфейсе Operation

named, withNamespace, withNamespaces
Модификатор и тип Метод Описание
default NamedOperation named(Object name)
Возвращает NamedOperation, используя эту операцию в качестве базовой.
default NamespaceOperation withNamespace(Namespace namespace)
Возвращает NamespaceOperation, используя эту операцию в качестве базовой.
default NamespaceOperation withNamespaces(Namespace... namespaces)
Возвращает NamespaceOperation, используя эту операцию в качестве базовой.

Подробное описание конструкторов

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(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, если она не является именованной операцией.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API