为啥比较两个对象是否相等,要用Objects的equals方法,而不是用对象自己的equals方法来解决呢?
Objects:
Objects类是一个工具类,提供了很多操作对象的静态方法供我们使用。
package cn.ensource.d14_objects;import java.util.Objects;public class Test {public static void main(String[] args) {// 目标:掌握Objects类提供的常用方法String s1 = null;String s2 = "itheima";// String是重写了equals方法
// System.out.println(s1.equals(s2));// Objects类是工具类,里面都是一些static类方法,构造方法私有,可以直接调用System.out.println(Objects.equals(s1, s2));}
}
如果对象为null,那么在调用的时候就会出现异常。但是我们使用Objects.equals方法就不存在这个问题。
可见使用Objects类是安全的。
a == b: 看看是不是同一个对象。
a != null: a不等于null的情况下,才会调用a.equals方法。
可以更加安全。
package cn.ensource.d14_objects;import java.util.Objects;public class Test {public static void main(String[] args) {// 目标:掌握Objects类提供的常用方法String s1 = null;String s2 = "itheima";// String是重写了equals方法
// System.out.println(s1.equals(s2));// Objects类是工具类,里面都是一些static类方法,构造方法私有,可以直接调用System.out.println(Objects.equals(s1, s2));System.out.println(Objects.isNull(s1)); // 返回trueSystem.out.println(Objects.isNull(s2)); // 返回falseSystem.out.println(Objects.nonNull(s1));System.out.println(Objects.nonNull(s2));}
}
再检查代码,发现跟s1 == null是等价的。
使用工具类写出的代码更加高大上!