Java IllegalArgumentException:绑定必须为正

时间:2020-04-29 19:31:05

标签: java

这是我的代码部分,它引发异常:

List<Car> car1store = new ArrayList<>();

//adding any number of cars to car1store

Random rnd = new Random();
double randNumber = rnd.nextDouble();

if (randNumber < 0.25) {
    int attempt = rnd.nextInt(car1store.size()); 
    Car car = car1store.get(attempt);
}

我已经搜索了为什么会出现此异常,但是我严重找不到car1store.size()如何为负数。最小数字只能是零。你能看到我的错误吗?

2 个答案:

答案 0 :(得分:1)

边界必须为正

该错误消息在此处明确指出了该问题。您的ArrayList的大小为0。这不是积极的。

这里更大的问题是您尝试从一个空列表中.get()

您应该在列表中添加一些元素,然后尝试访问它。

答案 1 :(得分:1)

您遇到了此问题,因为car1store.size()0,而rnd.nextInt的边界必须大于0。您可以使用以下代码了解问题:

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        Random rand = new Random();
        System.out.println(rand.nextInt(0));
    }
}

输出:

Exception in thread "main" java.lang.IllegalArgumentException: bound must be positive
    at java.base/java.util.Random.nextInt(Random.java:388)
    at Main.main(Main.java:6)
相关问题