一. 问题描述
假设有个两个字符串,需要比较是否相等:
String str1 = "abc";
String str2 = "abc";
此时使用如下方法即可比较二者是否相等:
boolean isSame = str1.equals(str2);
但是,如果str1=null
,再使用str1.equals(str2)
来比较的话,便会产生空指针异常。
二. 解决方法
使用 Objects.euqals()
方法比较即可避免空指针异常,因为它是空指针安全的。
使用示例:
boolean isSame = Objects.equals(str1, str2);
Objects.equals()
的源码:
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}