Класс Expression
public class Expression extends Statement
Expression представляет собой примитивное выражение, в котором к целевому объекту применяется один метод с набором аргументов для получения результата, как в "a.getFoo()". В дополнение к свойствам суперкласса объект Expression предоставляет значение — объект, возвращаемый при вычислении этого выражения. Возвращаемое значение обычно не предоставляется вызывающим кодом, а вычисляется путем динамического поиска метода и его вызова при первом обращении к getValue.
- Начиная с:
- 1.4
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Expression |
Создает новый объект Expression с указанным значением для заданного целевого объекта, чтобы вызвать метод, указанный именем и массивом аргументов. |
Expression |
Создает новый объект Expression для заданного целевого объекта, чтобы вызвать метод, указанный именем и массивом аргументов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
execute() |
Метод execute находит метод, имя которого совпадает со свойством methodName, и вызывает его для целевого объекта. |
Object |
getValue() |
Если свойство value этого экземпляра еще не задано, этот метод динамически находит для данного целевого объекта метод с указанным именем methodName и заданными аргументами и вызывает его. |
void |
setValue |
Задает значение этого выражения: value. |
String |
toString() |
Выводит значение этого выражения с использованием синтаксиса Java. |
Методы, объявленные в классе Statement
getArguments, getMethodName, getTarget | Модификатор и тип | Метод | Описание |
|---|---|---|
Object[] |
getArguments() |
Возвращает аргументы для вызываемого метода. |
String |
getMethodName() |
Возвращает имя вызываемого метода. |
Object |
getTarget() |
Возвращает целевой объект этого оператора. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарел и будет удален: этот элемент API подлежит удалению в будущей версии. Финализация устарела и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения определенного времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения определенного времени. |
Подробное описание конструкторов
Expression
@ConstructorProperties({"target","methodName","arguments"}) public Expression(Object target, String methodName, Object[] arguments) Expression для заданного целевого объекта, чтобы вызвать метод, указанный именем и массивом аргументов. Значения target и methodName не должны быть null. В противном случае попытка выполнить этот Expression приведет к NullPointerException. Если значение arguments равно null, в качестве значения свойства arguments используется пустой массив.
- Параметры:
-
target— целевой объект этого выражения -
methodName— имя метода, вызываемого для указанного целевого объекта -
arguments— массив аргументов для вызова указанного метода - См. также:
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— массив аргументов для вызова указанного метода - См. также:
Подробное описание методов
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 объекта 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.