Statement和Expression的用法
来源:互联网 发布:标准数据公司 编辑:程序博客网 时间:2024/06/06 12:32
简单的描叙:
1.Statement
对象表示基本语句,其中将单个方法应用于某一目标和一组参数,以返回结果,比如 "a.setFoo(b)"
。注意,此示例使用名称来指示目标及其参数,statement 对象不需要名称空间,可以使用值本身构造。statement 对象将指定方法与其环境相关联,作为值的简单集合:目标和参数值数组
2.Expression
对象表示基本表达式,其中将单个方法应用于某一目标和一组参数,以返回结果,与在"a.getFoo()"
中一样。
除了超类的属性之外,Expression
对象还提供了一个值,它是在对这个表达式进行求值时所返回的对象。返回值通常不由调用者提供,而是通过动态查找方法并在第一次调用getValue
时调用查找到的方法来计算。
两者的差异:
通过上面的介绍可以知道Expression是可以获得返回值的,方法是getValue。Statement不能获得返回值
代码实现:
1.javaBean的类
package com.xmlencoder;
public class Person{
private int id;
private String name;
private String content;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
测试的代码:
package com.xmlencoder;
import java.beans.Expression;
import java.beans.Statement;
public class TestStatementAndExpression {
public static void testStatement() {
try {
Person person = new Person();
person.setId(1);
person.setName("tan");
person.setContent("备注");
Statement statement1 = new Statement(person, "setId", new Object[] { 1 });
Statement statement2 = new Statement(person, "setName", new Object[] { "tan" });
Statement statement3 = new Statement(person, "setContent", new Object[] { "备注" });
statement1.execute();
statement2.execute();
statement3.execute();
System.out.println(person.getId()+"--"+person.getName()+"--"+person.getContent());
} catch (Exception e) {
e.printStackTrace();
}
}
public static void testExpression() {
try {
Person person = new Person();
person.setId(1);
person.setName("tan");
person.setContent("备注");
Expression expression1 = new Expression(person, "setId", new Object[] { 1 });
Expression expression2 = new Expression(person, "setId", new Object[] { 1 });
Expression expression3 = new Expression(person, "setId", new Object[] { 1 });
expression1.execute();
expression2.execute();
expression3.execute();
System.out.println(person.getId()+"--"+person.getName()+"--"+person.getContent());
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// TestStatementAndExpression.testStatement();//1
TestStatementAndExpression.testExpression();//2
}
}
输出结果:
1和2的输出结果一样展示:
1--tan--备注
- Statement和Expression的用法
- 术语expression 和statement
- statement的意思和用法
- java反射Statement和Expression
- JDBC Statement 和 PrepareStatement的用法
- PreparedStatement和Statement的用法区别
- PreparedStatement和Statement的用法区别
- statement 、prepareStatement的用法和解释
- PreparedStatement和Statement的用法区别
- Connection Statement ResultSet的一些接口和用法
- Java中PreparedStatement和Statement的用法区别
- Java中PreparedStatement和Statement的用法区别
- Java中PreparedStatement和Statement的用法区别
- Java中PreparedStatement和Statement的用法区别
- Java中PreparedStatement和Statement的用法区别
- Java中PreparedStatement和Statement的用法区别
- Java中PreparedStatement和Statement的用法区别
- Java中PreparedStatement和Statement的用法区别
- 单链表的快速排序
- Crixalis's Equipment
- PowerShellGet系列(二):用PowerShellGet管理你的模块包
- 批处理(bat)实现SQLServer数据库备份与还原
- linux文件权限管理
- Statement和Expression的用法
- 2.2 贝叶斯决策论——连续特征
- Internal Server Error mysql负回收导致网站异常
- win10 64位操作系统下jdk安装
- pyspark用pipe管道调用bash脚本时,遇到Permission Denied问题
- Java知识点总结归纳
- Jenkins自动部署Maven +tomcat+linux环境java项目并自动部署到外网
- PostgreSQL 9.4 流复制环境搭建
- 从零开始写javaweb框架笔记23-使框架具备AOP特性-实现事务控制特性