我在输入中有一些数据,我必须使用它来设置POJO的所有属性。 POJO可能部分设置。我的问题是仅在相关输入数据不为空时才设置属性。 我知道我可以通过两种方式做到这一点:
if (input != null) {
obj.setData(input);
}
或
obj.setData(input != null ? input : obj.getData());
我正在寻找一种不那么难看的解决方案,而且对于要设置大量属性的对象更好。
答案 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");