首页 > 解决方案 > 抛出错误消息:索引超出范围异常

问题描述

对于以下代码,我得到一个索引越界异常,我不确定为什么。任何帮助是极大的赞赏。

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; //@@@@@@@
}

标签: javajunitindexoutofboundsexception

解决方案


这主要是由于您的列表大小,我知道您已经为列表检查了 null ,但是由于列表不是null,它仍然可以是空的,0并且您无法访问 index 处的元素0。我建议您检查列表大小。


推荐阅读