public class Expression extends Statement
Expression对象表示一个原始表达式,其中单个方法应用于目标和一组参数以返回结果 - 如"a.getFoo()" 。
除了超级类的属性外, Expression对象提供了一个值 ,该值是评估此表达式时返回的对象。 返回值通常不由调用者提供,而是通过动态地找到方法并在第一次调用getValue时调用该方法来计算。
getValue() ,
setValue(java.lang.Object)
| Constructor and Description |
|---|
Expression(Object value, Object target, String methodName, Object[] arguments)
使用指定的目标对象的指定值创建一个新的 Expression对象,以调用由名称和参数数组指定的方法。
|
Expression(Object target, String methodName, Object[] arguments)
为指定的目标对象创建一个新的 Expression对象,以调用由名称和参数数组指定的方法。
|
| Modifier and Type | Method and Description |
|---|---|
void |
execute()
execute方法查找名称与
methodName属性相同的方法,并调用目标方法。
|
Object |
getValue()
如果此实例的value属性尚未设置,则此方法使用这些参数动态地找到具有指定的methodName的方法并调用该实例。
|
void |
setValue(Object value)
将此表达式的值设置为
value 。
|
String |
toString()
使用Java风格的语法打印此表达式的值。
|
getArguments, getMethodName, getTarget@ConstructorProperties(value={"target","methodName","arguments"}) public Expression(Object target, String methodName, Object[] arguments)
Expression对象,以调用由名称和参数数组指定的方法。
target和methodName值不应该是null 。 否则尝试执行此Expression将导致NullPointerException 。 如果arguments值为null ,则使用空数组作为arguments属性的值。
target - 此表达式的目标对象
methodName - 在指定目标上调用方法的名称
arguments - 调用指定方法的参数数组
getValue()
public Expression(Object value, Object target, String methodName, Object[] arguments)
Expression对象,以调用由名称和参数数组指定的方法。
value值用作value属性的值,因此getValue()方法将返回,而不执行此Expression 。
target和methodName值不应该是null 。 否则尝试执行此Expression将导致NullPointerException 。 如果arguments值为null ,则使用空数组作为arguments属性的值。
value - 此表达式的值
target - 此表达式的目标对象
methodName - 在指定目标上调用方法的名称
arguments - 调用指定方法的参数数组
setValue(java.lang.Object)
public void execute()
throws 异常
execute方法查找名称与methodName属性相同的方法,并调用目标方法。
当目标的类定义了具有给定名称的许多方法时,实现应使用Java语言规范(15.11)中指定的算法选择最具体的方法。
目标和参数的动态类用于代替编译时类型信息,像方法类一样,原始值与其关联的包装器类之间的转换在内部进行处理。
以下方法类型被处理为特殊情况:
Expression ,而不是Statement ,因为它们返回一个值。 List接口中定义的方法名称“get”和“set”也可以应用于数组实例,映射到Array类中同名的静态方法。 如果调用的方法正常完成,则返回的值将复制到value属性中。 请注意, value属性设置为null ,如果底层方法的返回类型为void 。
execute在
Statement
NullPointerException - 如果
target或
methodName属性的值是
null
NoSuchMethodException - 如果找不到匹配的方法
SecurityException - 如果安全管理器存在且拒绝方法调用
异常 - 被调用的方法抛出的
方法
public Object getValue() throws 异常
getValue的结果返回。
如果value属性已设置,则通过调用setValue或先前调用getValue然后返回value属性,而无需查找或调用该方法。
默认情况下, Expression的value属性设置为唯一的私有(非null )值,该值用作该方法尚未被调用的内部指示。 返回值null以与任何其他值相同的方式替换此默认值,以确保表达式从不被评估多次。
有关如何使用目标和参数的动态类型选择方法的详细信息,请参阅execute方法。
异常 - 如果具有指定methodName的方法抛出异常
Statement.execute() ,
setValue(java.lang.Object)
public void setValue(Object value)
value 。
该值将由getValue方法返回,而不调用与此表达式关联的方法。
value - 此表达式的值。
getValue()
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.