Класс Statement
- Прямые известные подклассы:
Expression
public class Statement extends Object
Statement представляет собой простое выражение, в котором один метод применяется к целевому объекту и набору аргументов, как в "a.setFoo(b)". Обратите внимание, что в этом примере имена обозначают целевой объект и его аргумент, тогда как объект-выражение не требует пространства имён и создаётся с самими значениями. Объект-выражение связывает именованный метод с его окружением в виде простого набора значений: целевого объекта и массива значений аргументов.- Начиная с версии:
- 1.4
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Statement |
Создаёт новый объект Statement для указанного целевого объекта, чтобы вызвать метод, заданный именем и массивом аргументов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
execute() |
Метод execute находит метод, имя которого совпадает со свойством methodName, и вызывает этот метод для целевого объекта. |
Object[] |
getArguments() |
Возвращает аргументы для вызываемого метода. |
String |
getMethodName() |
Возвращает имя вызываемого метода. |
Object |
getTarget() |
Возвращает целевой объект этого выражения. |
String |
toString() |
Выводит значение этого выражения в синтаксисе, принятом в Java. |
Подробное описание конструкторов
Statement
@ConstructorProperties({"target","methodName","arguments"}) public Statement(Object target, String methodName, Object[] arguments) Statement для указанного целевого объекта, чтобы вызвать метод, заданный именем и массивом аргументов. Значения target и methodName не должны быть null. В противном случае попытка выполнить это Expression приведёт к NullPointerException. Если значение arguments равно null, в качестве значения свойства arguments используется пустой массив.
- Параметры:
-
target— целевой объект этого выражения -
methodName— имя метода, вызываемого для указанного целевого объекта -
arguments— массив аргументов для вызова указанного метода
Подробное описание методов
getTarget
public Object getTarget()
null, метод execute() выбрасывает NullPointerException.- Возвращает:
- целевой объект этого выражения
getMethodName
public String getMethodName()
null, метод execute() выбрасывает NullPointerException.- Возвращает:
- имя метода
getArguments
public Object[] getArguments()
null можно использовать как синоним пустого массива.- Возвращает:
- массив аргументов
execute
public void execute() throws Exception
execute находит метод, имя которого совпадает со свойством methodName, и вызывает этот метод для целевого объекта. Если класс целевого объекта определяет несколько методов с заданным именем, реализация должна выбрать наиболее подходящий метод, используя алгоритм, указанный в спецификации языка Java (15.11). Вместо информации о типах времени компиляции используются динамические классы целевого объекта и аргументов; как и в самом классе Method, преобразование между примитивными значениями и соответствующими классами-обёртками выполняется автоматически. В качестве особых случаев обрабатываются следующие типы методов:
- Статические методы можно вызывать, используя объект класса в качестве целевого объекта.
- Зарезервированное имя метода "new" можно использовать для вызова конструктора класса, как если бы все классы определяли статические методы "new". Вызовы конструкторов обычно считаются
Expressionами, а неStatementами, поскольку они возвращают значение. - Имена методов "get" и "set", определённые в интерфейсе
List, также можно применять к экземплярам массивов; им соответствуют статические методы с теми же именами в классеArray.
- Выбрасывает:
-
NullPointerException— если значение свойстваtargetилиmethodNameравноnull -
NoSuchMethodException— если соответствующий метод не найден -
Exception— исключение, выброшенное вызываемым методом - См. также:
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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/beans/Statement.html