使用java8检查映射行中的空值

时间:2015-07-22 10:54:28

标签: java java-8

我使用模型类映射表,然后使用XML / JSON模式(通过xjc生成的对象)显示数据。

将表中的值绑定到XML doc时,我不喜欢做的一件事是空检查。假设有40列,其中35列可以为空。

我正在做的事情非常简单,如下所示;

if (dataFromTable.getUserPhoneNumber != null) {
    jaxbObject.setUserPhoneNumber(dataFromTable.getUserPhoneNumber);
}

我是否有可能制作一个方法来过滤所有空值并将它们设置为jaxbObjects而无需为每一列编写如上所述的代码?

我认为Java 8有filter()可以过滤集合中的空值。但是如果我想将它应用于单个对象(表中的1行)并检查每个列的值是什么呢?

1 个答案:

答案 0 :(得分:3)

如果您希望在没有明确null语句的情况下处理值为if的可能性,则可以使用Optional

Optional.ofNullable(dataFromTable.getUserPhoneNumber())
        .ifPresent(jaxbObject::setUserPhoneNumber);

与普通的if声明相比,这并不是一个巨大的胜利。 Optional将首先通过方法而不是可空引用返回和/或将其与多个处理步骤组合时显示它们的优势。

但是,它的优点是只需要调用getUserPhoneNumber()一次,而不需要额外的局部变量。