java equals()用法錯誤解析

來源:互聯網
上載者:User

標籤:

if (!password2.equals(password1)|| "".equals(password1) || password1.equals(null))一句的錯誤解析:

首先,正確的寫法是if (null.equals(password1) || "".equals(password1) || !password1.equals(password2))。 然後來解析錯誤的寫法:主要的錯誤在password1.equals(null)這一句,這一句錯的原因是,password1放在外面,如果它是null,那麼就會報null 指標異常。而且它應該第一個檢查,因為如果password1為null,那麼後面的就都不用檢查了。       !password2.equals(password1)同上,password2同樣可能發生null 指標問題,所以要將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 等,具體可以查看原始碼)。   2、關於str.equal(“abc”)和”abc”.equal(str)
這個好像爭論也挺多的,第一種常量寫在後面可能符合大多數人的習慣,也符合我們的邏輯思維。但是需要多一個str是否為null的判斷。否則這裡是有可能出現異常的。而後一種寫法不需要多做關於是否為null這個判斷。就我個人喜好來說,比較喜歡後一種寫法。

3、關於String的null

/**
* 測試java的String為null 的情況
* create date:2009-6-3
* author:Administrator
*
*/
public static void testNull(){
String a= null,b = null,c="呵呵";
System.out.println(a == null);
System.out.println(a+b+c);
}
方法運行結果:
true
nullnull呵呵
所以大家要注意了做字串合併作業時,別忘記判斷null,否則結果會不太讓你爽啊!

java equals()用法錯誤解析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.