推荐先判 null 再调用 isempty():if (list != null && list.isempty()),语义清晰、性能高效且防御性强;直接调用 list.isempty() 或 list.size() == 0 在 null 时会抛 nullpointerexception。

在 Java 中检查 ArrayList 是否为空,最常用、最推荐的方式是调用其 isEmpty() 方法。它语义清晰、性能高效,且能准确区分 null 和空集合——但要注意:isEmpty() 本身**不能处理 null 引用**,直接对 null 调用会抛出 NullPointerException。
✅ 推荐:先判 null 再调用 isEmpty()
安全可靠的写法是先检查引用是否为 null,再判断是否为空集合:
- if (list != null && list.isEmpty()) { ... } —— 最常见、最简洁的防御性写法
- 适用于所有场景,尤其在方法参数、返回值可能为
null时必须使用 - 比
list.size() == 0更具可读性,且内部实现就是检查 size,性能无差异
⚠️ 注意:避免直接对 null 调用 isEmpty()
以下写法会崩溃(运行时报错):
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
-
list.isEmpty() —— 当
list为null时抛出NullPointerException -
list.size() == 0 —— 同样会在
null时失败
? 补充:Optional 或工具类辅助(适合特定场景)
如果项目已使用 Optional 或 Apache Commons / Guava:
- Optional.ofNullable(list).filter(l -> !l.isEmpty()).isPresent() —— 函数式风格,略重,一般不必要
- CollectionUtils.isNotEmpty(list)(Apache Commons Collections)—— 内部已做 null 安全检查,一行搞定
? 小技巧:初始化时尽量避免 null
从源头减少判断负担:
- 成员变量或返回值优先用
new ArrayList()或Collections.emptyList()替代null - 例如:
private List<string> items = new ArrayList();</string>,后续可直接用items.isEmpty()
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










