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
的结果,否则返回第二个参数。