// 住院非空處理,否則判斷門診
zyyzjymx != null ? f1(zyyzjymx) : mzzdjymx != null ? f1(mzzdjymx) : null;
// 編譯錯誤或邏輯錯誤:三元運算符右結合,實際解析為
zyyzjymx != null ? f1(zyyzjymx) : (mzzdjymx != null ? f1(mzzdjymx) : null);
zyyzjymx != null ? (f1(zyyzjymx)) : (mzzdjymx != null ? f1(mzzdjymx) : null);
// 或拆分為 if-else 可讀性更強
if (zyyzjymx != null) {
f1(zyyzjymx);
} else if (mzzdjymx != null) {
f1(mzzdjymx);
}
Object result = switch (true) {
case boolean b when zyyzjymx != null -> f1(zyyzjymx);
case boolean b when mzzdjymx != null -> f1(mzzdjymx);
default -> null;
};
Optional.ofNullable(zyyzjymx)
.or(() -> Optional.ofNullable(mzzdjymx))
.ifPresent(this::f1);
三元運算符嵌套是「寫時讀懂,改時崩潰」的典型反模式,**顯式括號或重構為語句** 是專業選擇。