这是我的代码部分,它引发异常:
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()如何为负数。最小数字只能是零。你能看到我的错误吗?
答案 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)