第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

用 Objects.equals() 替換 .equals()

用 Objects.equals() 替換 .equals()

BIG陽(yáng) 2021-09-29 17:42:05
當(dāng) IntelliJ 建議我更正以下內(nèi)容時(shí),我正在編寫代碼:objectOne.equals(objectTwo);告訴我 Method 調(diào)用equals可能會(huì)產(chǎn)生舊的java.lang.NullPointerException,提出一些我不知道的解決方案,Objects.equals:Objects.equals(objectOne, objectTwo);閱讀文檔我只看到一個(gè)潛在的問題,即如果objectOne == null和objectTwo == null,那么結(jié)果是true。在這一點(diǎn)上的問題是:我可以開始替換并在任何地方使用這種方法而不是.equals嗎?這是一種安全的方法還是我遺漏了一些大的禁忌癥?擺脫 NPE 非常有吸引力……謝謝
查看完整描述

3 回答

?
慕的地10843

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊

這個(gè)問題沒有萬(wàn)無一失的答案,因?yàn)樗Q于程序的需求以及它應(yīng)該如何回答這種特殊情況。說到這里,我會(huì)說:

如果有一個(gè) null 是程序員的錯(cuò)誤(我的意思是你永遠(yuǎn)不會(huì)期望在你的算法中發(fā)生的事情)我建議離開 .equals 方法,因?yàn)闀?huì)出現(xiàn)空指針異常并讓你注意到這個(gè)問題,我的意思是,一個(gè)程序員的錯(cuò)誤(那些我們不想要的錯(cuò)誤!,這意味著我們寫了一個(gè)糟糕的算法),你應(yīng)該感謝應(yīng)用程序報(bào)告它(而不是一個(gè)憤怒的真實(shí)客戶......)

但是,如果另一方面您的應(yīng)用程序也可以正常工作,而不是將其視為程序錯(cuò)誤,那么使用 Object.equals 將更適合您的需求。

一般的智慧建議異常應(yīng)該至少被記錄下來。

希望能幫助到你!

TD;DR;

嘗試調(diào)查不同類型的異常。并非所有例外都是程序員錯(cuò)誤。

在 java 中,通常,檢查異常是針對(duì)所有您可以預(yù)期的事件,您可以編寫應(yīng)該能夠處理的代碼。而unchecked異常(那些所屬的RuntimeException的家庭)的事件,你只是無法預(yù)料(如空指針異常),因此它是IMPOSIBLE來編寫代碼來處理事情,你不要指望(相反,你應(yīng)該糾正已經(jīng)存在的代碼,不要寫新的?。?/p>



查看完整回答
反對(duì) 回復(fù) 2021-09-29
?
寶慕林4294392

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊

如果您想允許空值,這是一種合適的方法。否則,您只需添加對(duì)空值的檢查并適當(dāng)處理它們。


查看完整回答
反對(duì) 回復(fù) 2021-09-29
?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊

取決于您的代碼以及“無處不在”的含義。如果您的代碼當(dāng)前假定(可能不是明確的,但只是因?yàn)榭蛰斎胗肋h(yuǎn)不會(huì)傳播到equals調(diào)用之外)空輸入將導(dǎo)致 NPE,那么切換到Objects.equals將引入一個(gè)錯(cuò)誤。


查看完整回答
反對(duì) 回復(fù) 2021-09-29
  • 3 回答
  • 0 關(guān)注
  • 342 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)