我有两个具有相同属性和相同获取和设置方法的类,一个遵循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
抛出:
IllegalArgumentException - 如果 dest 或 orig 参数为 null,或者 dest 属性类型与源类型不同,并且尚未注册相关转换器。
此外,Bean 的 Java 定义是一个可序列化的类,具有默认构造函数以及允许访问其字段的 getter 和 setter。您的示例类不满足这些要求。