Spec-Zone.ru › OpenJDK 21

Класс 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 - если метод с таким именем не найден
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, 2023, 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/21/docs/api/java.desktop/java/beans/Expression.html

Spec-Zone.ru

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