Класс 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- если соответствующий метод не найден -
SecurityException- если существует менеджер безопасности, и он отклоняет вызов метода -
Exception- который генерируется вызываемым методом - См. также:
toString
public String toString()
- Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление объекта.
© 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/Statement.html