java - 抛出错误消息:索引超出范围异常
问题描述
对于以下代码,我得到一个索引越界异常,我不确定为什么。任何帮助是极大的赞赏。
public Rabbit nearestRabbit()
{
List<Rabbit> rabbits = this.getWorld().getObjects(Rabbit.class);
if (this.getWorld().getObjects(Rabbit.class) == null)
{
return null;
}
Rabbit nearest = rabbits.get(0);
double distance = distanceTo(nearest);
for (Rabbit rabbit : rabbits)
{
double thisDistance = distanceTo(rabbit);
if (thisDistance > distance)
{
distance = thisDistance;
nearest = rabbit;
}
}
return nearest; //@@@@@@@
}
解决方案
这主要是由于您的列表大小,我知道您已经为列表检查了 null ,但是由于列表不是null
,它仍然可以是空的,0
并且您无法访问 index 处的元素0
。我建议您检查列表大小。
推荐阅读
- python - 使用 matplotlib 绘制 sin wav 的傅立叶变换
- node.js - 使用 docker compose 时,Discord bot 无法联系不和谐服务器
- performance - 在 chrome 中的 React 应用程序中不断“渲染”屏幕外元素
- azure-aks - 使用自定义子网为 AKS 群集启用应用程序网关入口控制器 (AGIC) 加载项
- javascript - 可以采用递增计数器并使其显得唯一随机的算法或公式
- java - 指定的编译器合规性为 11,但使用 JRE 15 警告 spring boot 套件?
- c# - 在 EF Core 5 中,如何通过仅设置外键 ID 插入具有多对多关系的实体,而无需先查询?
- java - 为什么杰克逊仍然将 long[] 序列化为数字数组?
- html - 调整大小时如何设置背景图像以适应浏览器窗口?
- c# - 在 XNA/Monogame 中旋转然后平移矩阵时抖动