Module java.desktop
Package java.beans

Class Statement

java.lang.Object
java.beans.Statement
直接已知的子类:
Expression

public class Statement extends Object
一个Statement对象表示一个原始语句,其中一个单一方法被应用于一个目标和一组参数 - 就像"a.setFoo(b)"。请注意,这个示例中使用名称来表示目标及其参数,语句对象不需要名称空间,并且是用值本身构造的。语句对象将命名方法与其环境关联为一组简单的值:目标和参数值数组。
自1.4版本起:
1.4
  • Constructor Details

    • Statement

      @ConstructorProperties({"target","methodName","arguments"}) public Statement(Object target, String methodName, Object[] arguments)
      为指定的目标对象创建一个新的Statement对象,以调用名称和参数数组指定的方法。

      targetmethodName值不应为null。否则,尝试执行此Expression将导致NullPointerException。如果arguments值为null,则将使用空数组作为arguments属性的值。

      参数:
      target - 此语句的目标对象
      methodName - 要在指定目标上调用的方法的名称
      arguments - 要调用指定方法的参数数组
  • Method Details

    • getTarget

      public Object getTarget()
      返回此语句的目标对象。如果此方法返回nullexecute()方法将抛出NullPointerException
      返回:
      此语句的目标对象
    • getMethodName

      public String getMethodName()
      返回要调用的方法的名称。如果此方法返回nullexecute()方法将抛出NullPointerException
      返回:
      方法的名称
    • getArguments

      public Object[] getArguments()
      返回要调用的方法的参数。参数的数量和类型必须与被调用的方法匹配。null可以用作空数组的同义词。
      返回:
      参数数组
    • execute

      public void execute() throws Exception
      execute方法查找一个与methodName属性相同的方法,并在目标上调用该方法。当目标的类定义了许多具有相同名称的方法时,实现应该使用Java语言规范(15.11中指定的算法)选择最具体的方法。目标和参数的动态类用于替代编译时类型信息,类似于Method类本身,原始值和它们关联的包装类之间的转换在内部处理。

      以下方法类型被视为特殊情况:

      • 可以通过使用类对象作为目标来调用静态方法。
      • 保留的方法名称"new"可用于调用类的构造函数,就好像所有类都定义了静态的"new"方法。构造函数调用通常被视为Expression而不是Statement,因为它们返回一个值。
      • List接口中定义的方法名称"get"和"set"也可以应用于数组实例,映射到Array类中同名的静态方法。
      抛出:
      NullPointerException - 如果targetmethodName属性的值为null
      NoSuchMethodException - 如果找不到匹配的方法
      SecurityException - 如果存在安全管理器并且拒绝方法调用
      Exception - 被调用方法抛出的异常
      参见:
    • toString

      public String toString()
      使用Java风格的语法打印此语句的值。
      覆盖:
      toString 在类中的Object
      返回:
      对象的字符串表示形式。