类型转换器

在传递数据,经常会遇到因为类型不同而出现的问题,可以用org.apache.commons.beanutils.BeanUtils下的populate方法来转换数据类型。

具体实现为BeanUtils.populate(Object bean, Map properties),其中bean可以对应实体层所对应数据的实体类,如果properties的key有跟bean中的属性相同,那么把这个key的value赋给bean。

但populate方法不能将String数据转为Date,这个时候可以使用org.apache.commons.beanutils.ConvertUtils下的register方法,具体实现为ConvertUtils.register(Converter converter, Class clazz), converter可以为自己定义的一个转换器,clazz为你对应需要转换的数据类型。

关于自己定义一个转换器:

  1. new Converter(){
  2.      @Override
  3.       public Object convert(Class clazz, Object arg1){
  4.                 ruturn null;
  5. }}

clazz即为你定义的要转换的数据类型,arg1为你要转的对象,如果要转成String类型,则需要进行强转。

具体代码:

  1. //String转Date
                ConvertUtils.register(new Converter() {
                    
                    public Object convert(Class arg0, Object value) {
                        SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd");//传入的数据类型
                        Date parse = null;
                        try {
                            parse = format.parse(value.toString());
                        } catch (ParseException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        return parse;
                    }
                }, Date.class);

猜你喜欢

转载自blog.csdn.net/hiyao_557/article/details/88921015