- java.lang.Object
-
- java.beans.Statement
-
- 已知直接子类:
-
Expression
public class Statement extends Object
一个Statement
对象表示一个原语言,其中单个方法应用于目标和一组参数 - 如"a.setFoo(b)"
。 请注意,此示例使用名称来表示目标及其参数,语句对象不需要名称空间,并且使用值本身构造。 语句对象将named方法与其环境相关联,作为一组简单的值:目标和参数值数组。- 从以下版本开始:
- 1.4
-
-
构造方法详细信息
-
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 异常
execute
方法查找名称与methodName
属性相同的方法,并调用目标方法。 当目标的类定义了具有给定名称的许多方法时,实现应使用Java语言规范(15.11)中指定的算法选择最具体的方法。 目标和参数的动态类用于代替编译时类型信息,像方法
类本身一样,原始值与其关联的包装器类之间的转换在内部进行处理。以下方法类型被处理为特殊情况:
- 可以通过使用类对象作为目标来调用静态方法。
- 保留方法名称“new”可以用于调用类的构造函数,就像所有类定义静态“新”方法一样。 构造函数调用通常被认为是
Expression
而不是Statement
因为它们返回一个值。 -
List
接口中定义的方法名称“get”和“set”也可以应用于数组实例,映射到Array
类中同名的静态方法。
- 异常
-
NullPointerException
- 如果target
或methodName
属性的值为null
-
NoSuchMethodException
- 如果找不到匹配的方法 -
SecurityException
- 如果安全管理器存在并且拒绝方法调用 -
异常
- 被调用的方法抛出的 - 另请参见:
-
方法
-
-