public class Statement extends Object
Statement对象表示一个原始语句,其中单个方法应用于目标和一组参数 - 如"a.setFoo(b)" 。
请注意,此示例使用名称来表示目标及其参数,语句对象不需要名称空间,并且使用值本身构造。
语句对象将named方法与其环境相关联,作为一组简单的值:目标和参数值数组。
| Constructor and Description |
|---|
Statement(Object target, String methodName, Object[] arguments)
为指定的目标对象创建一个新的 Statement对象,以调用由名称和参数数组指定的方法。
|
@ConstructorProperties(value={"target","methodName","arguments"}) public Statement(Object target, String methodName, Object[] arguments)
Statement对象,以调用由名称和参数数组指定的方法。
target和methodName值不应该是null 。 否则尝试执行此Expression将导致NullPointerException 。 如果arguments值为null ,则使用空数组作为arguments属性的值。
target - 此语句的目标对象
methodName - 在指定目标上调用方法的名称
arguments - 调用指定方法的参数数组
public Object getTarget()
null ,那么execute()方法会抛出一个NullPointerException 。
public String getMethodName()
null ,那么execute()方法会抛出一个NullPointerException 。
public Object[] getArguments()
null可以用作空数组的同义词。
public void execute()
throws 异常
execute方法查找名称与methodName属性相同的方法,并调用目标方法。
当目标的类定义了具有给定名称的许多方法时,实现应使用Java语言规范(15.11)中指定的算法选择最具体的方法。
目标和参数的动态类用于代替编译时类型信息,像方法类一样,原始值与其关联的包装器类之间的转换在内部进行处理。
以下方法类型被处理为特殊情况:
Expression ,而不是Statement ,因为它们返回一个值。 List接口中定义的方法名称“get”和“set”也可以应用于阵列实例,映射到Array类中同名的静态方法。 NullPointerException - 如果
target或
methodName属性的值为
null
NoSuchMethodException - 如果找不到匹配的方法
SecurityException - 如果安全管理器存在,并拒绝方法调用
异常 - 被调用方法抛出的
方法
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.