Spec-Zone.ru › OpenJDK 24

Класс Expression

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

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

С момента:
1.4
См. также:
  • getValue()
  • setValue(java.lang.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.

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

getArguments, getMethodName, getTarget

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

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

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

Выражение

@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()

Выражение

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(java.lang.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 возвращается без поиска или вызова метода.

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

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

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

setValue

public void setValue(Object value)
Устанавливает значение этого выражения в value. Это значение будет возвращено методом getValue без вызова метода, связанного с этим выражением.
Параметры:
value - Значение этого выражения.
См. также:
  • getValue()

toString

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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/beans/Expression.html

Spec-Zone.ru

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