java equals()用法錯誤解析
Dec 16, 2016 am 09:54 AMif (!password2.equals(password1)|| "".equals(password1) || password1.equals(null))一句的錯誤解析:
首先,正確的寫法是if (null.equals(password1) | | "".equals(password1) || !password1.equals(password2))。
接著來解析錯誤的寫法:
主要的錯誤在password1.equals(null)這一句,這一句錯的原因是,password1放在外面,如果它是null,那麼就會報空指針異常。而且它應該第一個檢查,因為如果password1是null,那麼後面的就都不用檢查了。
! password2.equals(password1)同上,password2同樣可能發生空指標問題,所以要將password1放外面,因為前面已經檢測過了,所以如果執行這句,password1肯定不會為null。
另外,也可以寫成如下形式:if (StringUtils.isEmpty(password1) || !password1.equals(password2)),StringUtils.isEmpty(password1)就等同於null.equals(password1) || "".equals|| (password1),只是做了封裝而已。
附一句別人對StringUtils的說明:(轉)StringUtils 方法的操作對像是java.lang.String 類型的對象,是JDK 提供的String 類型操作方法的補充,並且是null 安全的(即如果輸入參數String為null 則不會拋出NullPointerException ,而是做了相應處理,例如,如果輸入為null 則返回也是null 等,具體可以查看原始程式碼)。
更多java equals()用法錯誤解析相關文章請關注PHP中文網!

熱門文章

熱門文章

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

2025年的前4個JavaScript框架:React,Angular,Vue,Svelte

如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?

如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?

Spring Boot Snakeyaml 2.0 CVE-2022-1471問題已修復
