java 8 变量区间比较封装工具类
这里提供一个生产级的区间比较工具类设计,支持int、long、double、BigDecimal、Date、LocalDate、LocalDateTime、String等常见类型,并提供了多种区间判断方式。完整工具类源码javaimport java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; /** * 区间比较工具类 * * 功能特性: * 1. 支持所有实现了 Comparable 接口的类型 * 2. 支持闭区间、开区间、半开半闭区间 * 3. 支持 null 安全处理 * 4. 支持对象字段提取后比较 * 5. 支持集合过滤 * 6. 支持自定义边界规则 * * @author YourName * @since 1.0 */ public final class RangeUtils { private RangeUtils() { // 工具类私有构造,防止实例化 } // ==================== 1. 数值类型区间比较(int) ==================== /** * 判断 int 值是否在闭区间内:[min, max],包含边界 */ public static boolean isInRange(int value, int min, int max) { return value = min value = max; } /** * 判断 int 值是否在开区间内:(min, max),不包含边界 */ public static boolean isInRangeExclusive(int value, int min, int max) { return value min value max; } /** * 判断 int 值是否在左闭右开区间内:[min, max) */ public static boolean isInRangeLeftClosed(int value, int min, int max) { return value = min value max; } /** * 判断 int 值是否在左开右闭区间内:(min, max] */ public static boolean isInRangeRightClosed(int value, int min, int max) { return value min value = max; } // ==================== 2. 数值类型区间比较(long) ==================== public static boolean isInRange(long value, long min, long max) { return value = min value = max; } public static boolean isInRangeExclusive(long value, long min, long max) { return value min value max; } public static boolean isInRangeLeftClosed(long value, long min, long max) { return value = min value max; } public static boolean isInRangeRightClosed(long value, long min, long max) { return value min value = max; } // ==================== 3. 数值类型区间比较(double) ==================== public static boolean isInRange(double value, double min, double max) { return value = min value = max; } public static boolean isInRangeExclusive(double value, double min, double max) { return value min value max; } public static boolean isInRangeLeftClosed(double value, double min, double max) { return value = min value max; } public static boolean isInRangeRightClosed(double value, double min, double max) { return value min value = max; } // ==================== 4. BigDecimal 区间比较 ==================== /** * 判断 BigDecimal 是否在闭区间内:[min, max] * 注意:使用 compareTo 而不是 equals,避免精度问题 */ public static boolean isInRange(BigDecimal value, BigDecimal min, BigDecimal max) { if (value == null) { return false; } boolean greaterOrEqualMin = min == null || value.compareTo(min) = 0; boolean lessOrEqualMax = max == null || value.compareTo(max) = 0; return greaterOrEqualMin lessOrEqualMax; } /** * 判断 BigDecimal 是否在开区间内:(min, max) */ public static boolean isInRangeExclusive(BigDecimal value, BigDecimal min, BigDecimal max) { if (value == null) { return false; } boolean greaterThanMin = min == null || value.compareTo(min) 0; boolean lessThanMax = max == null || value.compareTo(max) 0;

相关新闻

Ubuntu磁盘挂载权限问题解决方案与优化

Ubuntu磁盘挂载权限问题解决方案与优化

1. 问题背景与现象分析最近在Ubuntu系统上遇到一个典型的分区权限问题:将1TB机械硬盘挂载为/data目录后,尝试复制文件时出现"because you do not have permissions to create it in the d"错误提示。这个报错在Linux文件系统操作中非常常见&am…

2026/8/9 21:57:11 阅读更多 →
Linux LVM卷组管理:vgcreate命令详解与最佳实践

Linux LVM卷组管理:vgcreate命令详解与最佳实践

1. Linux LVM 卷组管理核心工具:vgcreate 深度解析在Linux系统存储管理中,LVM(Logical Volume Manager)是每个系统管理员必须掌握的核心技术。作为LVM架构中的关键组件,卷组(Volume Group)承担着…

2026/8/9 21:57:11 阅读更多 →
Windows CMD命令实战:从基础操作到高级系统管理

Windows CMD命令实战:从基础操作到高级系统管理

1. CMD命令概述与基础操作Windows命令提示符(CMD)作为系统内置的实用工具,已经伴随我们走过了三十多个年头。尽管图形界面日益完善,但CMD在系统管理、故障排查和自动化操作中依然不可替代。我日常处理服务器维护时,至少…

2026/8/9 21:56:11 阅读更多 →

最新新闻

JSLT核心功能详解:让JSON转换效率提升10倍的秘诀

JSLT核心功能详解:让JSON转换效率提升10倍的秘诀

JSLT核心功能详解:让JSON转换效率提升10倍的秘诀 【免费下载链接】jslt JSON query and transformation language 项目地址: https://gitcode.com/gh_mirrors/js/jslt JSLT是一款强大的JSON查询和转换语言,能够帮助开发者轻松处理复杂的JSON数据转…

2026/8/9 22:56:35 阅读更多 →
gh-card:GitHub仓库卡片生成器的架构设计与实战指南

gh-card:GitHub仓库卡片生成器的架构设计与实战指南

gh-card:GitHub仓库卡片生成器的架构设计与实战指南 【免费下载链接】gh-card :octocat: GitHub Repository Card for Any Web Site 项目地址: https://gitcode.com/gh_mirrors/gh/gh-card gh-card是一个专为开发者设计的GitHub仓库卡片生成工具,…

2026/8/9 22:56:35 阅读更多 →
原神抽卡记录导出工具:3分钟掌握你的抽卡概率与保底规律

原神抽卡记录导出工具:3分钟掌握你的抽卡概率与保底规律

原神抽卡记录导出工具:3分钟掌握你的抽卡概率与保底规律 【免费下载链接】genshin-wish-export Easily export the Genshin Impact wish record. 项目地址: https://gitcode.com/GitHub_Trending/ge/genshin-wish-export 原神抽卡记录导出工具是一款专为原神…

2026/8/9 22:56:35 阅读更多 →
戴森球计划工厂蓝图:从新手到专家的完整开源解决方案

戴森球计划工厂蓝图:从新手到专家的完整开源解决方案

戴森球计划工厂蓝图:从新手到专家的完整开源解决方案 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 在《戴森球计划》的星际建设之旅中,你是否曾因…

2026/8/9 22:56:35 阅读更多 →
解锁Rockpack隐藏功能:TypeScript严格模式与代码风格自动化

解锁Rockpack隐藏功能:TypeScript严格模式与代码风格自动化

解锁Rockpack隐藏功能:TypeScript严格模式与代码风格自动化 【免费下载链接】rockpack Zero-config React with built-in SSR, automated quality gates, and AI-ready project structure - ship clean code whether you write it yourself or with an AI assistant…

2026/8/9 22:56:35 阅读更多 →
SnapShot v2.8.8 系统备份还原实战:从原理到PE环境恢复

SnapShot v2.8.8 系统备份还原实战:从原理到PE环境恢复

1. 背景与核心概念在系统运维、软件开发和日常使用中,数据丢失或系统崩溃是开发者最不愿面对却又无法完全避免的风险。无论是误删关键文件、病毒攻击,还是系统更新失败、硬件故障,都可能导致工作停滞甚至业务中断。此时,一个可靠、…

2026/8/9 22:55:35 阅读更多 →

日新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/9 0:45:04 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →