Spec-Zone.ru › OpenJDK 8

Класс 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

Конструкторы

Expression

@ConstructorProperties(value={"target","methodName","arguments"})
public Expression(Object target,
                                                                                    String methodName,
                                                                                    Object[] arguments)

Создаёт новый объект Expression для указанного целевого объекта, вызывающего метод по указанному имени и массиву аргументов.

Значения target и methodName не должны быть null. В противном случае попытка выполнить это Expression приведёт к NullPointerException. Если значение arguments равно null, в качестве значения свойства arguments используется пустой массив.

Параметры:
target - целевой объект данного выражения
methodName - имя вызываемого метода для указанного целевого объекта
arguments - массив аргументов для вызова указанного метода
См. также:
getValue()

Expression

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, 2020, 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.

Spec-Zone.ru

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