if(str == null || "".equals(null))和if(str == null || str.equals(""))有什么區別嗎
如果str == null 為真,則前者if()中會返回false,后者if()會報空指針異常;
你這里使用的str字符串對象是null,表示沒有指向任何對象,在執行str.equal()方法時,虛擬機會發現str不能調用其實例方法equals(),所以返回異常,表明這是一個需要引起注意的地方;反過來 "".equals(str),""不為null,而是一個字節為0的對象,所以不會拋出異常,一個不為空,一個為空,當然返回false;
再有,寫str != null 沒有錯,但是最好養成 null != str的習慣,因為 null!=str 永遠不會產生空指針異常,但其他的很容易產生,這也是極限編程建議的寫法