Класс Expression
public class Expression extends Statement
Expression представляет примитивное выражение, в котором к целевому объекту применяется один метод с набором аргументов для возврата результата — как в "a.getFoo()". В дополнение к свойствам базового класса, объект Expression содержит свойство value, представляющее собой объект, возвращаемый при вычислении этого выражения. Значение возврата обычно не предоставляется вызывающим методом, а вычисляется динамически путём поиска метода и его вызова при первом обращении к getValue.
- Since:
- 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- если метод не найден -
SecurityException- если существует менеджер безопасности, и он запрещает вызов метода -
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
public String toString()
- Переопределяет:
-
toStringв классеStatement - Возвращает:
- строковое представление объекта.
© 1993, 2021, 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/17/docs/api/java.desktop/java/beans/Expression.html