Objects:专为操作 Java 对象而生的工具类

沉默王二2022年8月30日
大约 2 分钟

jdk7之后,提供了Objects工具类,我们可以通过它操作对象。

对象判空

在java中万事万物皆对象,对象的判空可以说无处不在。Objects的isNull方法判断对象是否为空,而nonNull方法判断对象是否不为空。例如:

Integer integer = new Integer(1);

if (Objects.isNull(integer)) {
    System.out.println("对象为空");
}

if (Objects.nonNull(integer)) {
    System.out.println("对象不为空");
}

对象为空抛异常

如果我们想在对象为空时,抛出空指针异常,可以使用Objects的requireNonNull方法。例如:

Integer integer1 = new Integer(128);

Objects.requireNonNull(integer1);
Objects.requireNonNull(integer1, "参数不能为空");
Objects.requireNonNull(integer1, () -> "参数不能为空");

判断两个对象是否相等

我们经常需要判断两个对象是否相等,Objects给我们提供了equals方法,能非常方便的实现:

Integer integer1 = new Integer(1);
Integer integer2 = new Integer(1);

System.out.println(Objects.equals(integer1, integer2));

执行结果:

true

但使用这个方法有坑,比如例子改成:

Integer integer1 = new Integer(1);
Long integer2 = new Long(1);

System.out.println(Objects.equals(integer1, integer2));

执行结果:

false

具体原因不细说了,有兴趣的小伙们可以看看我的另一篇文章《Objects.equals有坑open in new window》,里面有非常详细的讲解。

获取对象的hashCode

如果你想获取某个对象的hashCode,可以使用Objects的hashCode方法。例如:

String str = new String("abc");
System.out.println(Objects.hashCode(str));

执行结果:

96354

Objects的内容先介绍到这里,有兴趣的小伙们,可以看看下面更多的方法:


最近整理了一份牛逼的学习资料,包括但不限于Java基础部分(JVM、Java集合框架、多线程),还囊括了 数据库、计算机网络、算法与数据结构、设计模式、框架类Spring、Netty、微服务(Dubbo,消息队列) 网关 等等等等……详情戳:可以说是2022年全网最全的学习和找工作的PDF资源了open in new window

关注二哥的原创公众号 沉默王二,回复111 即可免费领取。

Loading...