2 回答

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊
雖然可讀性較差,但這正是三元運(yùn)算符的用途。
List<Bags> bags = (listOfBags != null && listOfBags.getBags() != null) ? listOfBags.getBags() : null;
我個(gè)人會(huì)堅(jiān)持使用簡(jiǎn)單的 if 語(yǔ)句,因?yàn)樗呖勺x性:
List<Bags> bags = null;
if(listOfBags != null && listOfBags.getBags() != null) {
bags = listOfBags.getBags();
}
兩者都做同樣的事情。
當(dāng)然,您可以嘗試通過(guò)提取表示條件的布爾值來(lái)使三元運(yùn)算符更具可讀性...
boolean hasBags = listOfBags != null && listOfBags.getBags() != null;
List<Bag> bags = hasBags? listOfBags.getBags() : null;
...但那一點(diǎn)你不妨只使用一個(gè) if 語(yǔ)句。

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊
為了補(bǔ)充羅迪的答案,另一種解決方案是:
List<Bags> bags = null != listOfBags? listOfBags.getBags(): null; if (nbags != null)
添加回答
舉報(bào)