仅当属性不为null时才设置属性

时间:2016-05-04 12:57:45

标签: java

我在输入中有一些数据,我必须使用它来设置POJO的所有属性。 POJO可能部分设置。我的问题是仅在相关输入数据不为空时才设置属性。 我知道我可以通过两种方式做到这一点:

if (input != null) {
    obj.setData(input);
}

obj.setData(input != null ? input : obj.getData());

我正在寻找一种不那么难看的解决方案,而且对于要设置大量属性的对象更好。

2 个答案:

答案 0 :(得分:6)

您还可以使用java8 Optional

obj.setData(Optional.ofNullable(input).orElse(obj.getData()));

甚至使用更优雅的方式:

Optional.ofNullable(input).ifPresent(obj::setData);

答案 1 :(得分:0)

使用guava:

String someString = "value";
Optional.fromNullable(someString).or("defaultValue");