條件 ? 真值 : 假值
// 相當於
if (條件) { 真值 } else { 假值 }
setFlags(clickable ? CLICKABLE : 0, CLICKABLE);
// 等同於
int flag = clickable ? CLICKABLE : 0;
setFlags(flag, CLICKABLE);
clickable 為 boolean,CLICKABLE 為 int 常數。若 clickable==true 傳 CLICKABLE,否則傳 0。
| 場景 | 範例 |
|---|---|
| 預設值 | String name = input != null ? input : "Guest"; |
| 條件賦值 | int level = score >= 60 ? 1 : 0; |
| 避免 NPE | String len = str != null ? str.length() : 0; |
| 三元巢狀 (慎用) | result = a > b ? "大" : a == b ? "等" : "小"; |
return, throw)if-elseOptional (Java 8+):Optional.ofNullable(v).orElse(defaultVal)
// 整數 + 浮點數 → double
Object obj = true ? 1 : 1.0; // obj 為 Double
// 物件 + null → 物件型別
String s = true ? "hi" : null; // String
// 基本型別不可為 null
// int i = true ? 1 : null; // ❌ 編譯錯誤
// Integer i = true ? 1 : null; // ✅