content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,java,Objects

  • 2022-11-06
  • 浏览 (389)


title: Objects:专为操作 Java 对象而生的工具类 shortTitle: Objects对象工具类 category: - Java核心 tag: - 常用工具类 description: Java程序员进阶之路,小白的零基础Java教程,从入门到进阶,Objects:专为操作 Java 对象而生的工具类 head: - - meta - name: keywords

content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,java,Objects

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有坑》,里面有非常详细的讲解。

获取对象的hashCode

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

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

执行结果:

96354

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


你可能感兴趣的文章

content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,java,Arrays,数组

content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,java,Collections,集合框架

content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,java,Guava

content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,java,Hutool

content: Java,Java SE,Java基础,Java教程,Java程序员进阶之路,Java入门,教程,java,工具类,轮子

0  赞