Класс Expression
public class Expression extends Statement
Expression представляет примитивное выражение, в котором к целевому объекту применяется единственный метод с набором аргументов для получения результата — как в примере "a.getFoo()". Помимо свойств базового класса, объект Expression предоставляет свойство value, которое является объектом, возвращаемым при вычислении этого выражения. Значение возврата обычно не предоставляется вызывающей стороной, а вычисляется путём динамического поиска метода и его вызова при первом обращении к методу getValue.
- С момента:
- 1.4
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Expression |
Создаёт новый объект Expression со значением, заданным для указанного целевого объекта, для вызова метода, заданного именем и массивом аргументов. |
Expression |
Создаёт новый объект Expression для указанного целевого объекта, для вызова метода, заданного именем и массивом аргументов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
execute() |
Метод execute находит метод с именем, совпадающим со свойством methodName, и вызывает этот метод на целевом объекте. |
Object |
getValue() |
Если свойство value этого экземпляра ещё не задано, этот метод динамически находит метод с указанным именем methodName на этом целевом объекте с этими аргументами и вызывает его. |
void |
setValue |
Устанавливает значение этого выражения в value. |
String |
toString() |
Выводит значение этого выражения с использованием синтаксиса Java. |
Методы, объявленные в классе java.beans.Statement
getArguments, getMethodName, getTarget
Подробное описание конструкторов
Выражение
@ConstructorProperties({"target","methodName","arguments"}) public Expression(Object target, String methodName, Object[] arguments) Expression для указанного целевого объекта, чтобы вызвать метод, указанный по имени и массивом аргументов. Значения target и methodName не должны быть null. В противном случае попытка выполнить это Expression приведёт к NullPointerException. Если значение arguments равно null, то пустой массив используется в качестве значения свойства arguments.
- Параметры:
-
target- целевой объект для этого выражения -
methodName- имя метода для вызова на указанном целевом объекте -
arguments- массив аргументов для вызова указанного метода - См. также:
Выражение
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- массив аргументов для вызова указанного метода - См. также:
Подробное описание методов
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
- См. также:
getValue
public Object getValue() throws Exception
getValue. Если свойство value уже установлено, либо вызовом setValue, либо предыдущим вызовом getValue, то свойство value возвращается без поиска или вызова метода. Свойство value объекта Expression по умолчанию устанавливается в уникальное приватное (не null) значение, и это значение используется как внутренняя отметка, что метод ещё не был вызван. Возвращаемое значение null заменяет это значение по умолчанию аналогично любому другому значению, гарантируя, что выражения вычисляются не более одного раза.
См. метод execute для получения подробностей о выборе методов с использованием динамических типов целевого объекта и аргументов.
- Возвращает:
- Результат применения этого метода к этим аргументам.
- Исключения:
-
Exception- если метод с заданным methodName выбрасывает исключение - См. также:
setValue
public void setValue(Object value)
value. Это значение будет возвращено методом getValue без вызова метода, связанного с этим выражением.- Параметры:
-
value- Значение этого выражения. - См. также:
toString
© 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