关于java:仅当不为null时才设置属性

Set property only if is not null

本问题已经有最佳答案,请猛点这里访问。

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

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

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

我在寻找一个不那么难看的解决方案,更好地为具有大量属性的对象设置。


您也可以使用java8可选

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

或者使用更优雅的方式:

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


使用番石榴:

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