Object类的使用
此类包含static实用程序方法,用于操作对象或在操作前检查某些条件。 这些实用程序包括null或null方法,用于计算对象的哈希代码,返回对象的字符串,比较两个对象,以及检查索引或子范围值是否超出范围。
equals方法
格式
public static boolean equals(Object a, Object b)
返回true如果参数相等,彼此false其他。 因此,如果这两个参数是null , true返回,如果只有一个参数为null , false返回。 否则,通过使用第一个参数的equals方法确定相等性。
参数
a 一个对象
b 要与 a进行比较以获得相等性的对象
结果
true如果参数彼此相等,否则为 false
代码
Person p1 = null; //此处为空对象,本应该无法调用equals方法
Person p2 = new Person();
System.out.println(Objects.equals(p1,p2));
补充
一般的equals方法被空对象调用的话就会报错,指针异常。
但objects重写的equals方法里会有判空操作,所以导致对象为空时也能调用equals方法
is null方法
格式
public static boolean isNull(Object obj)
返回 true如果提供的参考是 null ,否则返回 false 。
参数
obj - 针对 null进行检查的参考
代码
Person p1 = null;
Person p2 = new Person();
System.out.println(Objects.isNull(p1)); //判空操作,若为空则输出true
结果
true如果提供的参考是 null否则 false
补充
可以直接对对象内容判断是否为空
requireNonNull方法
public static <T> T requireNonNull(T obj, String message)
检查指定的对象引用是否为null ,如果是,则抛出自定义的NullPointerException 。此方法主要用于在具有多个参数的方法和构造函数中进行参数验证,如下所示:
public Foo(Bar bar, Baz baz) { this.bar = Objects.requireNonNull(bar, "bar must not be null"); this.baz = Objects.requireNonNull(baz, "baz must not be null"); }
参数类型
T - 引用的类型
参数
obj - 检查无效的对象引用
message - 在抛出 NullPointerException的情况下使用的详细消息
代码
Person p1 = null;
Person p2 = new Person();
System.out.println(Objects.requireNonNull(p1));
结果
若是对象为空的话,就抛出异常终止程序
其他方法
1.checkFromIndexSize
checkFromIndexSize(int fromIndex, int size, int length)
检查是否在子范围从 fromIndex (包括)到 fromIndex + size (不包括)是范围界限内 0 (包括)到 length (不包括)。
2.checkFromToIndex
checkFromToIndex(int fromIndex, int toIndex, int length)
检查是否在子范围从 fromIndex (包括)到 toIndex (不包括)是范围界限内 0 (包括)到 length (不包括)。
3.checkIndex
checkIndex(int index, int length)
检查 index是否在 0 (含)到 length (不包括)范围内。
4.compare
compare(T a, T b, Comparator c)
如果参数相同则返回0,否则返回 c.compare(a, b) 。
5.deepEquals
deepEquals(Object a, Object b)
返回 true如果参数是深层相等,彼此 false其他。
6.nonNull
nonNull(Object obj)
返回 true如果提供的参考是非 null否则返回 false 。
7.toString
第一种
toString(Object o)
返回调用的结果 toString对于非 null参数, null为 null的说法。
第二种
toString(Object o, String nullDefault)
如果第一个参数不是 null ,则返回在第一个参数上调用 toString的结果,否则返回第二个参数。
1065

被折叠的 条评论
为什么被折叠?



