Spec-Zone.ru › OpenJDK 17

Класс Expression

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

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

Since:
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 - если метод не найден
SecurityException - если существует менеджер безопасности, и он запрещает вызов метода
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, 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

Spec-Zone.ru

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