Set<Long> 值empty和null 在 Java 中一个Set对象本身不为null的情况下它可以不包含任何元素此时它就是 empty 状态。一、常见场景1. 创建一个空 Setjava// 使用 Collections.emptySet() 创建不可变的空 Set SetLong emptySet Collections.emptySet(); System.out.println(emptySet.isEmpty()); // true // 使用 new HashSet() 创建可变的空 Set SetLong emptySet2 new HashSet(); System.out.println(emptySet2.isEmpty()); // true2. 方法返回空 Setjavapublic SetLong findIds() { // 如果没查到数据返回空 Set 而不是 null这是一种良好的编程习惯 return Collections.emptySet(); }3. 对空 Set 进行size()检查javaSetLong ids getIds(); if (ids.isEmpty()) { // 处理空集的情况 System.out.println(没有数据); } else { System.out.println(共有 ids.size() 条); }二、emptyvsnull的区别状态示例特点是否安全调用.isEmpty()空集 (empty)SetLong set new HashSet();对象存在但无元素✅ 安全返回truenullSetLong set null;对象不存在❌ 不安全会抛出NullPointerException推荐做法优先返回空集而非null可以避免调用方频繁判空。java// 推荐返回空集 public SetLong getIds() { return Collections.emptySet(); } // 不推荐返回 null public SetLong getIds() { return null; // 调用方必须判空否则 NPE }三、在你之前的 Feign 调用场景中你之前遇到过organizationIds作为参数传入SetLong完全可能是 empty 状态javaSetLong organizationIds new HashSet(); // 空集 // 调用方法 ListVehicleBaseWithDriverDTO result repository .findVehicleBaseWithDriverInfo(keyWords, organizationIds, driverName, modelId);这时organizationIds是 empty而不是null。如果你在 SQL 中写了IN (:organizationIds)传入空集可能会导致 SQL 语法错误如IN ()所以需要提前判断javaif (organizationIds ! null !organizationIds.isEmpty()) { sql.append(AND organization_id IN (:organizationIds) ); }四、判断空集的方法方法说明set.isEmpty()判断集合是否为空集无元素set.size() 0判断集合大小是否为 0set null判断对象是否为null不是判断空集安全判空组合javaif (set ! null !set.isEmpty()) { // 集合非空且有元素 }五、总结问题答案SetLong会是 empty 吗✅会new HashSet()或Collections.emptySet()都可以创建空集empty 和 null 一样吗❌ 不一样empty 是对象存在但无元素null 是对象不存在如何判断 empty用set.isEmpty()方法传入 SQL 的IN子句时要注意什么先判断!set.isEmpty()否则会生成IN ()导致 SQL 语法错误

相关新闻

最新新闻

Newcar交互系统教程:如何为Canvas元素添加点击、拖拽与键盘事件

Newcar交互系统教程:如何为Canvas元素添加点击、拖拽与键盘事件

Newcar交互系统教程:如何为Canvas元素添加点击、拖拽与键盘事件 【免费下载链接】newcar 🖌️ [WIP] Modern JavaScript Canvas Library 项目地址: https://gitcode.com/gh_mirrors/ne/newcar Newcar是一款现代JavaScript Canvas库,提…

2026/7/27 12:29:31
OBS背景移除插件:5分钟打造专业虚拟绿幕的终极指南

OBS背景移除插件:5分钟打造专业虚拟绿幕的终极指南

OBS背景移除插件:5分钟打造专业虚拟绿幕的终极指南 【免费下载链接】obs-backgroundremoval An OBS plugin for removing background in portrait images (video), making it easy to replace the background when recording or streaming. 项目地址: https://git…

2026/7/27 12:29:31
医学图像分割——U-Net的绝对领域,但也有一堆让你头疼的问题

医学图像分割——U-Net的绝对领域,但也有一堆让你头疼的问题

聊完了SAM这个"通用选手",今天咱们进入一个"专用领域"——医学图像分割。这是分割技术商业化最成功的领域之一,也是"容错率最低"的领域之一。你要是在自动驾驶分割里把路边的石头误判成了汽车,最多是刹车一下&…

2026/7/27 12:29:31
Zotero OCR开发指南:从源码解析到插件扩展的完整路径

Zotero OCR开发指南:从源码解析到插件扩展的完整路径

Zotero OCR开发指南:从源码解析到插件扩展的完整路径 【免费下载链接】zotero-ocr Zotero Plugin for OCR 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-ocr Zotero OCR是一款强大的Zotero插件,它为用户提供了PDF文件的光学字符识别功能&…

2026/7/27 12:29:31
递归现实扭曲理论Recursive Reality Distortion Theory, RRD(世毫九实验室RAE前置子理论)公开版

递归现实扭曲理论Recursive Reality Distortion Theory, RRD(世毫九实验室RAE前置子理论)公开版

递归现实扭曲理论Recursive Reality Distortion Theory, RRD(世毫九实验室RAE前置子理论)公开版 作者:方见华 单位:世毫九实验室 摘要 递归现实扭曲理论(Recursive Reality Distortion Theory, RRD)是复杂系…

2026/7/27 12:29:31
NomNom存档编辑器:No Man‘s Sky玩家必备的3个终极存档管理技巧

NomNom存档编辑器:No Man‘s Sky玩家必备的3个终极存档管理技巧

NomNom存档编辑器:No Mans Sky玩家必备的3个终极存档管理技巧 【免费下载链接】NomNom NomNom is the most complete savegame editor for NMS but also shows additional information around the data youre about to change. You can also easily look up each it…

2026/7/27 12:24:31

月新闻