7.3.2 Java7新增的Objects类

7.3.2 Java7新增的Objects类

Java7新增了一个Objects工具类,它提供了一些工具方法来操作对象,这些工具方法大多是”空指针”安全的。
比如你不能确定一个引用变量是否为null,如果贸然地调用该变量的toString方法,则可能引发NullPointerException异常;但如果使用Objects类提供的toString(Object object)方法,就不会引发空指针异常,当objectnull时,程序将返回一个"null"字符串。

java工具类命名习惯

Java为工具类的命名习惯是添加一个字母s,比如

  • 操作数组的工具类是Arrays,
  • 操作集合的工具类是Collections

测试变量是否非null的方法

Objects提供的requireNonNull()方法,该方法主要用来对方法形参进行输入校验

  • 当传入的参数不为null时,该方法返回参数本身;
  • 否则将会引发NullPointerException异常。

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.Objects;

public class ObjectsTest {
// 定义一个obj变量,它的默认值是null
static ObjectsTest obj;

public static void main(String[] args) {
// 输出一个null对象的hashCode值,输出0
System.out.println(Objects.hashCode(obj));
// 输出一个null对象的toString,输出null
System.out.println(Objects.toString(obj));
// 要求obj不能为null,如果obj为null则引发异常
System.out.println(Objects.requireNonNull(obj, "obj参数不能是null!"));
}
}

运行结果:

1
2
3
4
5
0
null
Exception in thread "main" java.lang.NullPointerException: obj参数不能是null!
at java.util.Objects.requireNonNull(Objects.java:228)
at ObjectsTest.main(ObjectsTest.java:13)