首頁  >  文章  >  Java  >  java equals()用法錯誤解析

java equals()用法錯誤解析

高洛峰
高洛峰原創
2016-12-16 09:54:411558瀏覽

if (!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中文網!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn