У меня есть приведенный ниже код, который немного уродлив для множественных нулевых проверок.
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 есть ли другой подход?
or
Синтаксис Java9String s = Optional.ofNullable(str1) .or(() -> Optional.ofNullable(str2)) .or(() -> Optional.ofNullable(str3)) .orElse(str4);
выглядит не так хорошо, какStream.of
я бы сказал.