我正在将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代码库。它具有一些用于处理空值的实用方法。

09-04 23:18