ConvertUtils.register(new DateConverter(null), java.util.Date.class)使用

在我们使用BeanUtils.copyProperties(dest,orig)将一个类的属性赋值给另一个类的时候

如果类中存在 Date类型的转换可能会报"no value specified for date"错误,那是因为Converter,是因为Converter [转换器]这个居然只支持一些基本的类型,居然连java.util.Date这个也支持不了,而它的子类java.sql.Date是被支持的,在没有使用类型注册器的前提下使用util.date类型会报上述错误。

  BeanUtils.copyProperties(dest, orig);这种copy是浅拷贝,复制后的2个Bean的同一个属性可能拥有同一个对象的句柄,BeanUtils在对Bean

赋值是会进行类型转化。举例来说也就是在copyProperty时只要属性名相同,就算类型不同,BeanUtils也可以进行copy

而解决的办法也非常简单,只需要在BeanUtils.copyProperties()之前先通过类型注册器 ConvertUtils.register(new DateConverter(null), java.util.Date.class);的处理就可以了。

注册util.date的转换器,即允许BeanUtils.copyProperties时的源目标的util类型的值允许为空.

原文地址:https://www.cnblogs.com/cuixiaomeng/p/10007154.html