1. 程式人生 > >ConvertUtils.register(new DateConverter(null), java.util.Date.class)使用

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型別的值允許為空.