全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-08 6 分钟 ✍️ juanwangdev

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否则抛异常

📝 发现内容有误?点击此处直接编辑

← 上一篇 MathUtils
下一篇 → StringUtils
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库