我有下面的代码,对于多个空检查来说有点难看。
String s = null;
if (str1 != null) {
s = str1;
} else if (str2 != null) {
s = str2;
} else if (str3 != null) {
s = str3;
} else {
s = str4;
}
因此,我尝试使用如下所示的
Optional.ofNullable
,但如果有人阅读了我的代码,仍然很难理解。用Java 8做到这一点的最佳方法是什么String s = Optional.ofNullable(str1)
.orElse(Optional.ofNullable(str2)
.orElse(Optional.ofNullable(str3)
.orElse(str4)));
在Java 9中,我们可以将
Optional.ofNullable
与OR
一起使用,但是在Java8中还有其他方法吗? 最佳答案
您可以这样做:
String s = Stream.of(str1, str2, str3)
.filter(Objects::nonNull)
.findFirst()
.orElse(str4);