Objects.checkFromToIndex()是Java 9引入的区间校验方法,用于验证左闭右开范围(from ≤ index
Objects.checkFromToIndex() 是 Java 9 引入的实用方法,专为校验“左闭右开”区间(
from )设计,特别适合数组、List 或字符串的切片(subSequence / subList / Arrays.copyOfRange)前的安全检查。明确它的作用范围和参数含义
该方法签名是:
public static int checkFromToIndex(int fromIndex, int toIndex, int length)
它会依次验证:
fromIndex ≥ 0toIndex ≥ fromIndextoIndex ≤ length(注意:不是,因为toIndex是“结束位置”,允许等于length,例如对长度为 5 的数组取[2, 5]是合法的)全部通过则返回
fromIndex(方便链式使用);任一失败抛出IndexOutOfBoundsException,消息清晰(如 "fromIndex: -1" 或 "toIndex: 8 out of bounds for length 5")。在数组切片中直接配合 Arrays.copyOfRange 使用
比如要安全截取
int[] arr的子数组[start, end):
java-api-doc-generator下载分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
int[] safeSubArray(int[] arr, int start, int end) { Objects.checkFromToIndex(start, end, arr.length); return Arrays.copyOfRange(arr, start, end); }无需手动写
if (start arr.length || start > end)等冗长判断——checkFromToIndex一步覆盖全部边界逻辑,且异常信息更友好。在 List.subList 前做预检(避免运行时模糊异常)
List.subList(from, to)本身会校验,但错误信息较简略(如 "fromIndex = -1")。用checkFromToIndex提前拦截可统一错误格式,也便于日志追踪:<t> List<t> safeSubList(List<t> list, int from, int to) { Objects.checkFromToIndex(from, to, list.size()); return list.subList(from, to); }</t></t></t>尤其在公共 API 或工具类中,提前校验比依赖下游方法抛异常更可控。
与 checkIndex 配合处理单点访问 + 区间操作混合场景
若逻辑中既需校验单个索引(如
list.get(i)),又涉及区间(如后续切片),可组合使用:i - 1
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南












