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/16 1:46:42 阅读更多 →
Linux LVM卷组管理:vgcreate命令详解与最佳实践

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

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

2026/8/12 4:24:06 阅读更多 →
Windows CMD命令实战:从基础操作到高级系统管理

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

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

2026/8/19 4:13:58 阅读更多 →

最新新闻

脑机接口实战:用NeuroSky与树莓派打造意念控制投球游戏

脑机接口实战:用NeuroSky与树莓派打造意念控制投球游戏

1. 项目概述:当脑波控制遇上派对游戏想象一下,在朋友聚会或者公司团建上,你不再需要用双手去投掷那个小小的乒乓球,而是仅仅依靠“意念”——集中注意力,就能让球精准地飞向对面的杯子。这不是科幻电影,而是…

2026/8/19 22:43:01 阅读更多 →
硬件工程师的圣诞浪漫:用PCB设计制作个性化发光挂件

硬件工程师的圣诞浪漫:用PCB设计制作个性化发光挂件

1. 从电路板到圣诞挂件:一个硬件工程师的节日浪漫每年到了年底,办公室里除了年终总结,总还弥漫着另一种气氛。作为硬件工程师,我们打交道最多的就是那些绿色、蓝色或黑色的PCB板。它们躺在工作台上,是未完成的项目&…

2026/8/19 22:43:01 阅读更多 →
从知识图谱到GUI智能体:构建轻量级、可理解的自动化交互新范式

从知识图谱到GUI智能体:构建轻量级、可理解的自动化交互新范式

1. 从“盲点点击”到“知识驱动”:GUI智能体为何需要新范式最近在折腾一些自动化测试和RPA(机器人流程自动化)的项目,发现一个挺有意思的现象:无论是用Selenium、Playwright这类成熟的Web自动化框架,还是用…

2026/8/19 22:43:01 阅读更多 →
LabGuard:将自然语言安全规则编译为机器人运行时守卫的工程实践

LabGuard:将自然语言安全规则编译为机器人运行时守卫的工程实践

1. 项目概述:当AI“实验员”需要一本看得懂的“安全手册”最近在跟几个做具身智能和机器人实验室自动化的朋友聊天,大家不约而同地提到了一个痛点:实验室里的规则手册写得明明白白,但要让一个AI驱动的实体机器人(也就是…

2026/8/19 22:43:01 阅读更多 →
基于树莓派构建开源Hi-Fi音频系统:从I2S DAC到功放电路全解析

基于树莓派构建开源Hi-Fi音频系统:从I2S DAC到功放电路全解析

1. 项目概述:当树莓派遇上高保真音频如果你手头有一块树莓派,大概率已经用它玩过媒体中心、家庭自动化或者小型服务器。但有没有想过,让它摇身一变,成为一台音质足以让你坐下来静静欣赏音乐的Hi-Fi音频放大器?这就是Sq…

2026/8/19 22:43:01 阅读更多 →
HarmonyOS 6.1.1:Camera 自动构图与自动对焦

HarmonyOS 6.1.1:Camera 自动构图与自动对焦

相机行为受镜头、传感器、会话、权限、设备方向和主体环境共同影响,SDK 声明只能证明接口存在,不能替读者证明某台设备一定支持自动构图或某次拍摄一定完成。因此本文把问题收窄为一条可验收的工程链:如何查询能力,如何建立会话&a…

2026/8/19 22:42:01 阅读更多 →

日新闻

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/19 0:00:30 阅读更多 →
AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

1. 项目概述:当AI开始“猜”数学定理 最近在AI研究圈里,一个名为“Moonshine”的项目引起了不小的讨论。这名字本身就挺有意思,直译是“月光”,但在数学史上,它特指一个神秘而美丽的联系——魔群月光猜想,连…

2026/8/19 0:00:30 阅读更多 →
WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 一台刚配的新电脑,跑《魔兽争霸3》却卡成 PPT——这…

2026/8/19 0:02:31 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/19 11:55:18 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/19 9:46:27 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/19 11:55:16 阅读更多 →

月新闻

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

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

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

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

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

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

2026/8/19 7:42:22 阅读更多 →
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/19 11:55:13 阅读更多 →