为什么 BeanUtils.copyProperties 抛出 IllegalArgument 异常?

Why BeanUtils.copyProperties throw IllegalArgument Exception?

我有两个 类 具有相同的属性和相同的 get 和 set 方法,一个遵循 DTO 模式和一个 VO 模式。

所以我有这样的东西:

classDTO
    private String x;
    private String y;

classVO
    private String x;
    private String y;

为什么下面的代码会抛出异常illegalArgumentException

BeanUtils.copyProperties(classVO, classDTO);

阅读 API,您会得到问题的答案:

https://commons.apache.org/proper/commons-beanutils/javadocs/v1.9.3/apidocs/org/apache/commons/beanutils/BeanUtils.html

Throws:

IllegalArgumentException - if the dest or orig argument is null or if the dest property type is different from the source type and the relevant converter has not been registered.

此外,bean 的 Java 定义是可序列化的 class,具有默认构造函数以及允许访问其字段的 getter 和 setter。您的示例 classes 不满足这些要求。