ObjectUtils
ObjectUtils是Apache Commons Lang提供的对象操作工具类。
概述
所在包
org.apache.commons.lang3.ObjectUtils
依赖引入
XML
<dependency>
<groupId>org.apache.commons.lang3</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
核心特点
- 静态方法,无需创建对象
- 空安全操作,null不会抛异常
- 操作任意Java对象
空值判断
isNull判断null
Java
ObjectUtils.isNull(null); // true
ObjectUtils.isNull("abc"); // false
// 等价于 obj == null,但更易读
if (ObjectUtils.isNull(obj)) {
// 处理null情况
}
notNull判断非null
Java
ObjectUtils.notNull(null); // false
ObjectUtils.notNull("abc"); // true
// 等价于 obj != null
if (ObjectUtils.notNull(obj)) {
// 处理非null情况
}
默认值处理
defaultIfNull空值返回默认
Java
String name = null;
String result = ObjectUtils.defaultIfNull(name, "default");
// "default"
String name = "Tom";
String result = ObjectUtils.defaultIfNull(name, "default");
// "Tom"(不为null返回原值)
// 用于避免null导致的异常
String value = ObjectUtils.defaultIfNull(obj.getString(), "");
firstNonNull返回第一个非null
Java
String result = ObjectUtils.firstNonNull(null, null, "first", "second");
// "first"(返回第一个非null值)
String result = ObjectUtils.firstNonNull(null, null, null);
// null(全为null返回null)
对象比较
equals空安全比较
Java
ObjectUtils.equals(null, null); // true
ObjectUtils.equals("abc", "abc"); // true
ObjectUtils.equals("abc", null); // false
ObjectUtils.equals(null, "abc"); // false
// 不会抛NullPointerException
ObjectUtils.equals内部处理null,比obj.equals()更安全。
notEqual不等判断
Java
ObjectUtils.notEqual("abc", "def"); // true
ObjectUtils.notEqual("abc", "abc"); // false
ObjectUtils.notEqual(null, null); // false
compare比较对象
Java
ObjectUtils.compare(1, 2); // -1(1 < 2)
ObjectUtils.compare(2, 1); // 1(2 > 1)
ObjectUtils.compare(1, 1); // 0(相等)
// null处理
ObjectUtils.compare(null, 1); // -1(null小于非null)
ObjectUtils.compare(1, null); // 1
ObjectUtils.compare(null, null); // 0
max/min最大最小值
Java
ObjectUtils.max(1, 2, 3); // 3
ObjectUtils.max(null, 1); // 1
ObjectUtils.min(1, 2, 3); // 1
ObjectUtils.min(null, 1); // null
对象克隆
clone克隆对象
Java
public class User implements Cloneable {
private String name;
@Override
public User clone() {
return ObjectUtils.clone(this);
}
}
User user = new User("Tom");
User cloned = ObjectUtils.clone(user);
clone要求对象实现Cloneable接口,否则抛异常。
对象判空增强
allNull所有为null
Java
ObjectUtils.allNull(null, null, null); // true
ObjectUtils.allNull(null, "a", null); // false
anyNull任意为null
Java
ObjectUtils.anyNull(null, "a", "b"); // true
ObjectUtils.anyNull("a", "b", "c"); // false
allNotNull全部非null
Java
ObjectUtils.allNotNull("a", "b", "c"); // true
ObjectUtils.allNotNull("a", null, "c"); // false
对象验证
requireNonNull要求非null
Java
User user = ObjectUtils.requireNonNull(user, "user不能为null");
// 若user为null,抛出NullPointerException并显示消息
Identity操作
identityToString原始toString
Java
String str = ObjectUtils.identityToString(new Object());
// "java.lang.Object@12345678"
// 返回对象类名和hashCode,非内容toString
要点总结
- ObjectUtils是Apache Commons Lang的对象工具类
- isNull/notNull判断null/非null
- defaultIfNull提供默认值
- firstNonNull返回第一个非null
- equals空安全比较(不会NPE)
- compare比较对象(支持null)
- max/min获取最大最小值
- clone克隆对象(需实现Cloneable)
- allNull/anyNull批量判断null
- requireNonNull要求非null否则抛异常
📝 发现内容有误?点击此处直接编辑