BeanUtils.populate( Object bean , Map properties );可以使Map转对应的对象,但是如果是bean有个日期字段而Map中这个日期字段传过来是字符串,数据类型无法转换,会导致报错,所以BeanUtils需要一个日期转换器来解决日期格式转换问题。
- 自定义BeanUtils的前提是要导入BeanUtils的相关jar包。
- 导入BeanUtils.jar和logging.jar
封装:BeanUtils.populate( Object bean , Map properties )
注意:当对日期进行转换时
- 需要自己创建一个日期转换器:DateConverter对象,
- 设置格式:dateConverter.setPattern(“yyyy-MM-dd”),
- 进行注册:ConvertUtils.register( dateConverter , Date.class );
/**
*将数据封装给JavaBean,可以处理时间格式
*/
public final class MyBeanUtils {
private MyBeanUtils(){}
public static void populate(Object bean, Map<String,String[]> properties){
try {
//处理时间格式
DateConverter dateConverter = new DateConverter();
//设置日期格式
dateConverter.setPatterns(new String[]{"yyyy-MM-dd","yyyy-MM-dd HH:mm:ss"});
//注册格式
ConvertUtils.register(dateConverter, Date.class);
//封装数据
BeanUtils.populate(bean, properties);
} catch (IllegalAccessException | InvocationTargetException e) {
throw new RuntimeException(e);
}
}
}