Kan*_*ath 13 java apache-commons-beanutils
使用Commons beanUtils我想知道如何询问任何转换器说Dateconverter忽略空值并使用null作为默认值.作为一个例子考虑公共课,
public class X {
private Date date1;
private String string1;
//add public getters and setters
}
Run Code Online (Sandbox Code Playgroud)
和我的转换为,
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());
}
}
Run Code Online (Sandbox Code Playgroud)
由于日期恰好为null,因此抛出NPE.对于我来说,这看起来是一个非常原始的场景,应该默认处理(例如,我希望x2对date1有空值).doco告诉我,我可以要求转换器这样做.有人能指出我这样做的最佳方式吗?
我不想得到转换器和isUseDefault()是真的,因为那时我必须为所有日期,枚举和许多其他转换器做!
Kan*_*ath 38
显然看起来,有一种方法可以告诉ConvertUtils不会在null值上抛出异常,这是通过调用实现的
BeanUtilsBean.getInstance().getConvertUtils().register(false, false, 0);
Run Code Online (Sandbox Code Playgroud)
Die*_*ntz 10
最好的解决方案是更新到BeanUtils 1.9.0,因为这个问题已修复,你可以在这里看到https://issues.apache.org/jira/browse/BEANUTILS-454
| 归档时间: |
|
| 查看次数: |
33003 次 |
| 最近记录: |