Java中判断空值

1. 什么时间需要进行判断空值?

需要根据实际情况判断,如要是必须参数,不仅要做非空判断,还要判断该值是否符合要求。比如:name属性 限定长度是10个 ,而输入的长度是20个,虽然满足非空,但是并不能满足长度限制。

2. 怎么做非空判断

2.1 字符串的非空判断

https://www.jb51.net/article/186896.htm

1.StringUtils.isEmpty()
没有忽略空格参数,是根据 是否为空是否存在为判断依据。

StringUtils.isEmpty("Str") == false;

StringUtils.isEmpty("") == true;

StringUtils.isEmpty("   ") == false;

2.StringUtils.isBlank()
是在StringUtils.isEmpty的基础上进行了为空的判断。(一般更为常用

StringUtils.isBlank("Str") == false;

StringUtils.isBlank("") == true;

StringUtils.isBlank("   ") == true;

2.2 对象的非空判断

值得一看

我们想抛出一个空指针异常的时候,以前会:

if(Obj == null){
throw new xxxException("该记录不存在XXX")}

现在可以使用:

Objects.requireNonNull(T obj,"该记录不存在xxxx");

它们的实现区别不大,但是第二种更优雅一些。

2.3 集合的非空判断

CollectionUtils.isEmpty(listLinks);

需要注意的是:
集合不能存放double类型,只能存在Double中。

<think>我们被要求回答关于Java判断List是否为空值的方法,并参考了之前的引用内容。 根据引用[1]和引用[2]: - 判断List是否为空值实际上有两个层面:1) List对象是否为null;2) List对象是否为(即size为0)。 - 引用[1]提到:List不等于null和List.size()不等于0是两回事。 - 引用[2]介绍了使用Spring的CollectionUtils.isEmpty()方法,该方法可以同时检查null和集合。 因此,我们可以总结如下: 1. 如果只检查null,使用 list == null。 2. 如果只检查是否没有元素(注意:此时要求list不为null),使用 list.isEmpty() 或 list.size() == 0。 3. 如果要同时检查是否为null或集合,可以使用: - 自己写:list == null || list.isEmpty() - 使用工具类:CollectionUtils.isEmpty(list) (需要导入org.springframework.util.CollectionUtils) 另外,引用[3]虽然没有直接回答,但提到了一些关于反射和对象内容检查的内容,可能与当前问题关系不大。 因此,回答应该包括: a) 两种情况的说明(null和集合) b) 自己写条件判断的方法 c) 使用工具类的方法(推荐,因为简洁且避免NPE) 同时,我们还需要按照要求生成相关问题。 注意:我们不需要在回答中包含数学公式,所以无需使用LaTeX数学表达式。 </think>在 Java判断 List 是否为空值需要区分两种不同情况,以下是详细的判断方法及最佳实践: ### 🔍 一、核心判断方法 #### 1. **区分 `null` 与集合** | 判断目标 | 代码实现 | 说明 | |-------------------|-----------------------------------|------------------------| | List 为 `null` | `list == null` | 对象未初始化 | | List 为集合 | `list.isEmpty()` 或 `list.size() == 0` | 已初始化但无元素 | | 综合判(推荐✅) | `list == null || list.isEmpty()` | 同时检查初始化和元素数 | #### 2. **工具类简化(Spring 项目推荐)** ```java import org.springframework.util.CollectionUtils; // 综合判(同时检查 null 和 size=0) boolean isEmpty = CollectionUtils.isEmpty(list); ``` - ✔️ **`true` 场景**:`list = null` 或 `new ArrayList<>()` - ❌ **`false` 场景**:`list` 包含至少 1 个元素 [^2] ### ️ 二、代码示例 ```java import java.util.*; public class ListCheckDemo { public static void main(String[] args) { // 场景 1: null 对象 List<String> nullList = null; System.out.println("nullList判: " + (nullList == null || nullList.isEmpty())); // true // 场景 2: 集合 List<String> emptyList = new ArrayList<>(); System.out.println("emptyList判: " + (emptyList == null || emptyList.isEmpty())); // true // 场景 3: 非集合 List<String> validList = Arrays.asList("A", "B"); System.out.println("validList判: " + (validList == null || validList.isEmpty())); // false // Spring 工具类判 System.out.println("工具类判[nullList]: " + CollectionUtils.isEmpty(nullList)); // true } } ``` ### 📌 三、注意事项 1. **避免 NPE 风险** 直接调用 `list.isEmpty()` 时若 `list=null` 会抛出 `NullPointerException` ✅ 正确做法:先判 `null` 再判 `isEmpty()` 2. **初始化与内容的区别** `new ArrayList<>()` ➜ 已初始化(`!=null`)但 `size=0` [^1] `null` ➜ 未分配内存间 3. **不可变集合特殊处理** `Collections.emptyList()` 返回的对象: ```java List<String> immutable = Collections.emptyList(); System.out.println(immutable.isEmpty()); // true (但 != null) ``` ### 💡 最佳实践建议 ```java // 推荐写法:安全判链 public boolean isListEmpty(List<?> list) { return list == null || list.isEmpty(); } // 或使用 Objects 工具类(Java 7+) return list == null || list.isEmpty(); ``` > **关键总结**:`null` 表示未初始化的对象引用,`isEmpty()` 表示容器无内容。在业务逻辑中需明确区分这两种状态以避免逻辑错误[^1][^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值