细节:Object.equals方法,依赖于我们所重写的equals
好处:Objects.equals方法,内部带有非null判断。字符串比较时因为字符串重写了equals方法,所以依赖重写的了,但是object普通对象没有重写的话,就比较地址了。
好处就是避免空指针错误了。
// 使用Objects.equals(Object a, Object b)判断是否相等
System.out.println("null和null是否相等:" + Objects.equals(null, null));
System.out.println("null和\"hello world\"是否相等:" + Objects.equals(null, "hello world"));
System.out.println("\"tom\"和\"tom\"是否相等:" + Objects.equals("tom", "tom"));
上面结果依次是true,false,true 重点第二个不会报空指针错误了
附objects源码:
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}