ฉันมีรหัสด้านล่างซึ่งค่อนข้างน่าเกลียดสำหรับการตรวจสอบค่าว่างหลายรายการ
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
like ด้านล่าง แต่ก็ยังยากที่จะเข้าใจหากมีคนอ่านรหัสของฉัน วิธีที่ดีที่สุดในการทำเช่นนั้นใน 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
ฉันต้องการ sya