java.util.Objects
Objects
java.utils.Objects针对Object对象提供了几个静态的工具方法,这些方法可以归类为:
- null安全检查
- 对象比较
- 计算对象hash code
- 对象转换为String
Objects 与 Object 区别
- Object是Java中所有类的基类,位于java.lang包。
- Objects是Object的工具类,位于java.util包。(它从jdk1.7开始才出现,被final修饰不能被继承,拥有私有的构造函数。
它由一些静态的实用方法组成,这些方法是null-save(空指针安全的)或null-tolerant(容忍空指针的),用于计算对象的hashcode、返回对象的字符串表示形式、比较两个对象。)
1. null安全检查
isNull(Object obj)
检查对象是否为null,null返回true,否则返回false
源代码
public static boolean isNull(Object obj) {
return obj == null;
}
nonNull(Object obj)
与isNull相反,检查对象是否为非null,非null返回true,否则返回false
源代码
public static boolean nonNull(Object obj) {
return obj != null;
}
requreNonNull
其他三个方法为参数不同requreNonNull,这三个方法要求对象为非null,否则抛出NullPointException。
- requireNonNull(T obj)
检查指定类型的对象引用不为空null。当参数为null时,抛出空指针异常。设计这个方法主要是为了在方法、构造函数中做参数校验。
源码
public static <T> T requireNonNull(T obj) {
if (obj == null)
throw new NullPointerException();
return obj;
}
- requireNonNull(T obj, String message)
该方法是requireNonNull的重载方法,当被校验的参数为null时,根据第二个参数message抛出自定义的异常消息。
源码
public static <T> T requireNonNull(T obj, String message)