我使用 commons-beanutils 1.8.3 和 Date 属性作为 java.util.Date。
当我尝试将源复制到目标时,它无法复制日期属性。
以下显示了我之前的问题,但没有人给我正确的答案。
例如,我在源 bean 中的日期值是 Wed May 15 15:46:04 IST 2013,但 BeanUtils 无法将其复制到目的地...
我使用 commons-beanutils 1.8.3 和 Date 属性作为 java.util.Date。
当我尝试将源复制到目标时,它无法复制日期属性。
以下显示了我之前的问题,但没有人给我正确的答案。
例如,我在源 bean 中的日期值是 Wed May 15 15:46:04 IST 2013,但 BeanUtils 无法将其复制到目的地...
这是我能够解决问题的方式。
public static void copyProperties(Object src, Object dest) throws IllegalAccessException,
InvocationTargetException, NoSuchMethodException {
java.util.Date defaultValue = null;
Converter converter = new DateConverter(defaultValue);
BeanUtilsBean beanUtilsBean = BeanUtilsBean.getInstance();
beanUtilsBean.getConvertUtils().register(converter, java.util.Date.class);
BeanUtils.copyProperties(dest, src);
}
在您的情况下,不需要使用字符串转换,因为 src 和 dest 属性具有相同的类型。这将正常工作
for (Field property : attributes) {
property.set(dest, property.get(src));
}
解决了cloneBean函数的问题,比如:
ClassType newClazz = null;
newClazz = (ClassType) BeanUtils.cloneBean(oldClazz);