3 回答

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊
這是 IntelliJ IDEA 2018.2的一個(gè)新特性:
下劃線重新分配的局部變量和重新分配的參數(shù)
默認(rèn)情況下,IntelliJ IDEA 現(xiàn)在強(qiáng)調(diào)重新分配的局部變量和重新分配的參數(shù)。支持此功能的所有語(yǔ)言(目前包括 Java 和 Groovy)的屬性都可以在Preferences/Settings | 中更改。編輯 | 配色方案 | 語(yǔ)言默認(rèn)值 | 標(biāo)識(shí)符 | 重新分配。
為什么它可能有用?
如果變量/參數(shù)有下劃線,您就知道不能直接在 lambda/匿名類中使用它。
在閱讀很長(zhǎng)的方法代碼時(shí),如果參數(shù)沒(méi)有下劃線,您肯定知道它的值不會(huì)在此方法的任何地方重新分配,并且它包含在任何時(shí)候傳遞給此方法的完全相同的值。
一些代碼指南反對(duì)重新分配變量,您可能希望盡可能避免使用它們以保持代碼干凈并使其更易于閱讀/調(diào)試。
如今,許多開(kāi)發(fā)人員更喜歡避免可變狀態(tài),并且僅在真正必要的極少數(shù)情況下才重新分配變量。我們不想手動(dòng)強(qiáng)制執(zhí)行不變性,我們假設(shè)默認(rèn)情況下一切都是不可變的,并且希望在某些情況下引起額外的注意。如果您使用final
標(biāo)記非可變變量,則意味著您需要為常規(guī)情況編寫(xiě)更多代碼,在特殊情況下編寫(xiě)更少代碼。(順便說(shuō)一句,現(xiàn)代語(yǔ)言中聲明不可變變量不需要編寫(xiě)額外的代碼,但不幸的是在 Java 中不需要)。
Java 語(yǔ)言架構(gòu)師 Brian Goetz 也喜歡 IntelliJ IDEA 突出顯示重新分配的變量的方式(請(qǐng)參閱他的推文)。

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊
添加回答
舉報(bào)