java - 使用 BeanUtils.copyProperties(dest, src) 时出错

标签 java apache-commons-beanutils

我有 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/

相关文章:

java - 将多个子DTO设计成单个请求Spring Boot

java - 即使外观 UI 另有规定,如何强制 JPopupMenu 显示标题?

java - 将属性从一个 bean 复制到另一个 : Java

java - 创建新属性时测试 BeanUtils/test 应该失败

java - 使用 BeanUtils.getProperty() 时出现未知属性错误

java - BeanUtils.copyproperties 日期属性复制问题?

java - 在java中创建项目需要哪些基本东西

java - 在 RecyclerView 或分组 Recyclerview 项目中按组划分元素,按日期说

java - 将 wicket CompoundPropertyModel 与抽象类一起使用

java - 根据对象的成员变量和值比较对象