Spec-Zone.ru › OpenJDK 27

Класс Expression

java.lang.Object
java.beans.Statement
java.beans.Expression
public class Expression extends Statement
Объект Expression представляет собой примитивное выражение, в котором к целевому объекту применяется один метод с набором аргументов для получения результата, как в "a.getFoo()".

В дополнение к свойствам суперкласса объект Expression предоставляет значение — объект, возвращаемый при вычислении этого выражения. Возвращаемое значение обычно не предоставляется вызывающим кодом, а вычисляется путем динамического поиска метода и его вызова при первом обращении к getValue.

Начиная с:
1.4
См. также:
  • getValue()
  • setValue(Object)

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

Конструктор Описание
Expression(Object value, Object target, String methodName, Object[] arguments)
Создает новый объект Expression с указанным значением для заданного целевого объекта, чтобы вызвать метод, указанный именем и массивом аргументов.
Expression(Object target, String methodName, Object[] arguments)
Создает новый объект Expression для заданного целевого объекта, чтобы вызвать метод, указанный именем и массивом аргументов.

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

Модификатор и тип Метод Описание
void execute()
Метод execute находит метод, имя которого совпадает со свойством methodName, и вызывает его для целевого объекта.
Object getValue()
Если свойство value этого экземпляра еще не задано, этот метод динамически находит для данного целевого объекта метод с указанным именем methodName и заданными аргументами и вызывает его.
void setValue(Object value)
Задает значение этого выражения: value.
String toString()
Выводит значение этого выражения с использованием синтаксиса Java.

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

getArguments, getMethodName, getTarget
Модификатор и тип Метод Описание
Object[] getArguments()
Возвращает аргументы для вызываемого метода.
String getMethodName()
Возвращает имя вызываемого метода.
Object getTarget()
Возвращает целевой объект этого оператора.

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

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

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

Expression

@ConstructorProperties({"target","methodName","arguments"}) public Expression(Object target, String methodName, Object[] arguments)
Создает новый объект Expression для заданного целевого объекта, чтобы вызвать метод, указанный именем и массивом аргументов.

Значения target и methodName не должны быть null. В противном случае попытка выполнить этот Expression приведет к NullPointerException. Если значение arguments равно null, в качестве значения свойства arguments используется пустой массив.

Параметры:
target — целевой объект этого выражения
methodName — имя метода, вызываемого для указанного целевого объекта
arguments — массив аргументов для вызова указанного метода
См. также:
  • getValue()

Expression

public Expression(Object value, Object target, String methodName, Object[] arguments)
Создает новый объект Expression с указанным значением для заданного целевого объекта, чтобы вызвать метод, указанный именем и массивом аргументов. Значение value используется в качестве значения свойства value, поэтому метод getValue() вернет его, не выполняя этот Expression.

Значения target и methodName не должны быть null. В противном случае попытка выполнить этот Expression приведет к NullPointerException. Если значение arguments равно null, в качестве значения свойства arguments используется пустой массив.

Параметры:
value — значение этого выражения
target — целевой объект этого выражения
methodName — имя метода, вызываемого для указанного целевого объекта
arguments — массив аргументов для вызова указанного метода
См. также:
  • setValue(Object)

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

execute

public void execute() throws Exception
Метод execute находит метод, имя которого совпадает со свойством methodName, и вызывает его для целевого объекта. Если класс целевого объекта определяет несколько методов с заданным именем, реализация должна выбрать наиболее специфичный метод, используя алгоритм, указанный в спецификации языка Java (15.11). Динамические классы целевого объекта и аргументов используются вместо информации о типах времени компиляции; как и в самом классе Method, преобразование между примитивными значениями и соответствующими классами-оболочками выполняется внутри.

Следующие типы методов обрабатываются особым образом:

  • Статические методы можно вызывать, используя объект класса в качестве целевого объекта.
  • Зарезервированное имя метода "new" можно использовать для вызова конструктора класса, как если бы у всех классов были статические методы "new". Вызовы конструкторов обычно считаются Expressionами, а не Statementами, поскольку они возвращают значение.
  • Имена методов "get" и "set", определенные в интерфейсе List, также можно применять к экземплярам массивов; в этом случае используются статические методы с теми же именами из класса Array.

Если вызванный метод завершается нормально, возвращаемое им значение копируется в свойство value. Обратите внимание: свойству value присваивается значение null, если возвращаемый тип базового метода — void.

Переопределяет:
execute в классе Statement
Вызывает исключения:
NullPointerException — если значение свойства target или methodName равно null
NoSuchMethodException — если соответствующий метод не найден
Exception — исключение, выброшенное вызванным методом
Начиная с:
1.7
См. также:
  • Method

getValue

public Object getValue() throws Exception
Если свойство value этого экземпляра еще не задано, этот метод динамически находит для данного целевого объекта метод с указанным именем methodName и заданными аргументами и вызывает его. Результат вызова метода сначала копируется в свойство value этого выражения, а затем возвращается как результат getValue. Если свойство value уже было задано вызовом setValue или предыдущим вызовом getValue, значение свойства возвращается без поиска или вызова метода.

По умолчанию свойству value объекта Expression присваивается уникальное закрытое значение (не null), которое используется как внутренний признак того, что метод еще не был вызван. Возвращаемое значение null заменяет это значение по умолчанию так же, как и любое другое значение, гарантируя, что выражения вычисляются не более одного раза.

Подробные сведения о выборе методов с учетом динамических типов целевого объекта и аргументов см. в методе execute.

Возвращает:
Результат применения этого метода к указанным аргументам.
Вызывает исключения:
Exception — если метод с указанным именем methodName выбрасывает исключение
См. также:
  • Statement.execute()
  • setValue(Object)

setValue

public void setValue(Object value)
Задает значение этого выражения: value. Метод getValue вернет это значение, не вызывая метод, связанный с этим выражением.
Параметры:
value — значение этого выражения.
См. также:
  • getValue()

toString

public String toString()
Выводит значение этого выражения с использованием синтаксиса Java.
Переопределяет:
toString в классе Statement
Возвращает:
строковое представление объекта

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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