使用Commons BeanUtils,我想知道如何要求任何转换器(比如DateConverter)忽略空值并将null作为默认值。以一个公共类为例:
使用Commons BeanUtils,我如何请求任何转换器(例如DateConverter)忽略空值并将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的值为null)。文档告诉我可以要求转换器完成此操作。可以有人指点我如何最好地做到这一点吗?我不想获得转换器并使isUseDefault()成为true,因为那样我必须为所有日期、枚举和许多其他转换器这样做!