Spec-Zone.ru › OpenJDK 25

Класс 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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

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

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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/beans/Expression.html

Spec-Zone.ru

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