equals方法中变量在前和在后的区别
对于变量: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,空指针异常这个问题