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