好像还简单是吧???
加入现在又第二种表单:
name : "wangwu"
age : 26
有一个Person类
public class Person{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
复制代码
要将上面的两个参数封装成一个Person对象,那么你就要重复
String name = request.getParameter("name");
String age = request.getParameter("age");
Person p = new Person();
p.setName(name);
p.setAge(Integer.parse(age));
这段程序和上面那段程序是不是很像,只是要创建的对象不一样而已,
而如果用放射的方式,就可以只写一个函数就可以了:
因为从request中是可以直接得到字段和值的map的,所以就可以利用反射
public class RequestUtil{
public static Object getBean(Class c, Map map){
Object o = c.newInstance();
// 下面就是用反射的方式,从mao中得到key值就是o对象的属性的名称,value就是要设置的值
// 是不是只要这个方法就可以对传过来的值就行封装
/// ......具体实现可以参照视频的方式自己实现
return o;
}
}
复制代码
写好上面的函数都,就可以把上面的两段话改写成
1、 User u = (User)RequestUtil.getBean(User.class,map);
2、 Person p = (User)RequestUtil.getBean(Person.class,map);