我正在将XML读入JAXB pojos,并希望将字段合并到我的实体pojos中。但是,如果XML中的值为null(即XML中不存在该值),我不想覆盖现有值。因此,现在我有很多这样的代码集:
if (addressDetails.getNAME1() != null) {
org.setName1(addressDetails.getNAME1());
}
if (addressDetails.getNAME2() != null) {
org.setName2(addressDetails.getNAME2());
}
if (addressDetails.getNAME3() != null) {
org.setName3(addressDetails.getNAME3());
}
这是丑陋的,嘈杂的,Sonar抱怨圈复杂性。您将如何去做?我想到的是:
使用反射的util(缓慢且类型安全)
包装器类到实体类(详细,样板)
我的目标是可读性强,并且没有很多额外的代码。
最佳答案
看一下Google的Guava代码库。它具有一些用于处理空值的实用方法。