【发布时间】:2011-02-05 18:26:40
【问题描述】:
使用 Commons beanUtils 我想知道如何让任何转换器说 Dateconverter 忽略 null 值并使用 null 作为默认值。以公共类为例,
public class X {
private Date date1;
private String string1;
//add public getters and setters
}
和我的转换器测试一样,
public class Apache {
@Test
public void testSimple() throws Exception {
X x1 = new X(), x2 = new X();
x1.setString1("X");
x1.setDate1(null);
org.apache.commons.beanutils.BeanUtils.copyProperties(x2, x1);
//throws ConversionException
System.out.println(x2.getString1());
System.out.println(x2.getDate1());
}
}
由于日期恰好为空,因此上面会引发 NPE。这在我看来是一个非常原始的场景,应该默认处理(如,我希望 x2 对 date1 具有空值)。 doco 告诉我,我可以要求converter 这样做。有人可以指出我这样做的最佳方法吗?
我不想让 Converter 和 isUseDefault() 为真,因为我必须为所有 Date、Enum 和许多其他转换器做这件事!
【问题讨论】:
标签: java apache-commons-beanutils