equals方法變量和常量位置區別


對於字符串比較,我的習慣用法是   變量.equals(常量)

  比如:     a.equals("a")

 

  今天看視頻才知道變量在前面與后面有很大影響,正確的寫法是常量放前面(可以避免變量為null引起的異常),變量放后面,則上面需要改為("a").equals(a)。

  對於JDK API上字符串的equals的官方解釋是:

 

比如:

public class equalsTest {
    @SuppressWarnings("rawtypes")
    public static void main(String args[]) {
        List list = new ArrayList();
        String str = null;
        System.out.println("0".equals(str));
        System.out.println(str.equals("0"));
        System.out.println("0".equals(list.get(2)));
        System.out.println(list.get(2).equals("0"));
    }
}

 

上面依次輸出:

   false

   java.lang.NullPointerException

   java.lang.IndexOutOfBoundsException: Index: 2, Size: 0

   java.lang.IndexOutOfBoundsException: Index: 2, Size: 0

 

  對於判斷是否為空  str!=null,這個應該變量放前面后面一般沒影響,養成好的習慣的話變量也放在后面。一般對一個字符串進行判斷首先進行非空判斷,然后進行字符串內容判斷,一個正確的例子:

  null !=string && !("").equals(string.trim()) && !("null").equals(string);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM