1. 程式人生 > >equals方法中變量在前和在後的區別

equals方法中變量在前和在後的區別

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方法中變量在前和在後的區別