1.BeanUtils相关的知识点
1.1 概述
BeanUtils是Apache Commons组件的成员之一,主要用于简化JavaBean封装数据的操作。常用的操作有以下三个:
- 对JavaBean的属性进行赋值和取值。
- 将一个JavaBean所有属性赋值给另一个JavaBean对象中。
- 将一个Map集合的数据封装到一个JavaBean对象中。
1.2JavaBean
JavaBean就是一个类,但该类需要满足以下四个条件:
- 类必须使用public修饰。
- 提供无参数的构造器。
- 提供公共getter和setter方法访问属性。
- 实现序列化接口(一般没写)
JavaBean的两个重要概念
字段:就是成员变量,字段名就是成员变量名。
属性:属性名通过setter/getter方法去掉set/get前缀,首字母小写获得。
一般情况下 , 字段和属性一致
1.3 BeanUtils常见的方法
- public static void populate(Object bean, Map<String, ? extends Object> properties);
将一个Map集合中的数据封装到指定对象bean中(注意:对象bean的属性名和Map集合中键要相同)
1.4 BeanUtils的使用
把map的数据封装到JavaBean里面
- User.java
public class User implements Serializable{
// 姓名
private String name;
// 性别
private String gender;
// 地址
private String address;
// 年龄
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", gender='" + gender + '\'' +
", address='" + address + '\'' +
", age=" + age +
'}';
}
}
- BeanUtilsDemo.java
public class BeanUtilsDemo {
//使用BeanUtils把Map里面的数据封装到JavaBean
//要求: Map里面的key必须和JavaBean属性一致
public static void main(String[] args) throws InvocationTargetException, IllegalAccessException {
User user = new User();
Map<Object,Object> map = new HashMap<Object,Object>();
map.put("name01","张三");
map.put("gender","男");
map.put("address","北京");
map.put("age",18);
BeanUtils.populate(user,map);
System.out.println(user);
}
}