equals方法中變量在前和在後的區別
阿新 • • 發佈:2018-05-12
ase ole 三元 返回 大小寫 工具 != 方法 三元表達式
對於變量:String str1;
使用str1.equals("null");
對於變量str1,如果str1是null,空是沒有equals方法的,會拋出空指針異常
使用"null".equals(str1);如果str1是null,最終始終返回的都是false;
建議使用官方提供的工具類:
StringUtils.equals(String str1, String str2)
工具類源碼如下:
public static boolean equals(String str1, String str2) { return str1 != null ? str1.equals(str2) : str2 == null; } //忽略大小寫進行比較 public static boolean equalsIgnoreCase(String str1, String str2) { return str1 != null ? str1.equalsIgnoreCase(str2) : str2 == null; }
可以看到源碼利用三元表達式很好的規避了null,空指針異常這個問題
equals方法中變量在前和在後的區別