我有 2 个表单类
public class Form1{
int id,
String name,
DateTime lastModified;
//setters and getters
}
public class Form2 {
int id,
String name,
Date lastModified;
//setters and getters
}
即,其中一个表单具有相同的变量名称 lastModified 和 Date 类型,另一个表单具有 joda DateTime 类型
我正在尝试将 form1 值复制到 form2
Form1 form1 = dao.getForm1();
Form2 form2 = new Form2();
BeanUtils.copyProperties(form2,form1)
但它给了我这样的错误
org.apache.commons.beanutils.ConversionException: DateConverter does not support default String to 'Date' conversion.
我尝试了中给出的解决方案
https://stackoverflow.com/a/5757379/1370555
但它给了我这样的错误
org.apache.commons.beanutils.ConversionException: Error converting 'org.joda.time.DateTime' to 'Date' using pattern 'yyyy-MM-dd HH:mm:ss.0 Z'
我认为它可以用 apache ConvertUtils 解决,但我不知道它是如何完成的
任何人都可以帮我解决这个问题吗?
最佳答案
BeanUtils.copyProperties(form2,form1)
将一个表单的属性值复制到另一个表单。因为您的两个表单都有 lastModified
具有不同数据类型和 org.joda.time.DateTime
的属性与 java.util.Date
不兼容,你得到了异常(exception)。
您可以将属性更改为相同的引用类型或使用构造函数将值分配给相同变量引用的匹配数据类型
关于java - 使用 BeanUtils.copyProperties(dest, src) 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33141809/