populate方法的作用将map数据封装到指定的JavaBean中,一般用于将表单中的所有数据封装到JavaBean
populate(Object obj,Map
JavaBean其实就是一个Java的实体类(对象)
package Day01_Demo.Test05;/*
@create 2020--12--21--11:27
*/
import org.apache.commons.beanutils.BeanUtils;
import org.junit.Test;
import javax.swing.plaf.basic.BasicScrollPaneUI;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;
/**
* BeanUtils下的方法讲解
*/
public class BeanUtilsDemo {
//使用populate方法进行填充数据方法1
@Test
public void test1(){
//1.模拟数据,创建map,填充所需要的数据
Map<String, String[]> map = new HashMap<>();
map.put("uid", new String[]{"u007"});
map.put("username", new String[]{"王语嫣"});
map.put("password", new String[]{"111"});
//2.使用populate方法进行填充
User user = new User();
try {
BeanUtils.populate(user, map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
//输出
System.out.println(user);
}
//使用populate方法进行填充数据方法2
@Test
public void test2(){
//1.模拟数据,创建map,填充所需要的数据
Map<String, String[]> map = new HashMap<>();
map.put("uid", new String[]{"u008"});
//底层,其实就是调用了setUserName
map.put("username", new String[]{"郭靖","黄蓉"});
map.put("password", new String[]{"123"});
map.put("hobbies", new String[]{"降龙十八掌", "碧海潮声曲", "打狗十八式"});
map.put("age", new String[]{"45"});
//2.使用populate方法进行填充
/*
可以指定属性,统一进行填充,需要的类型是[]
如果属性不是数组,将使用map.value表示数组中的第一个数据 - 黄蓉不是第一个数据所以不见了
BeanUtils支持的类型:基本类型和基本类型对应的包装类,自动将字符串转换为基本类型 - 自己做的
*/
User user = new User();
try {
BeanUtils.populate(user, map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
System.out.println(user);
}
}