在运行一系列继承的自动化测试时,我收到错误消息:
java.lang.IllegalArgumentException: bound must be positive
at java.base/java.util.Random.nextInt(Random.java:388)
at LinkGeneratorWww.getRandomPage(LinkGeneratorWww.java:166)
下面的代码似乎是问题所在,但我不知道如何解决。
public static String getRandomPage() {
List<String> pages = getAllPagesInDatabase();
//get random page from the list
Random random = new Random();
int randomNumber = random.nextInt(pages.size());
return pages.get(randomNumber);
}
我看过其他帖子也遇到了同样的问题,但是希望获得任何帮助。
我尝试通过将pages.size()
更改为pages.size()+1
来解决此问题,但它开始返回不同的错误(Index 0 out-of-bounds for length 0)
答案 0 :(得分:0)
您应在返回列表之一之前检查列表的大小。因此,如果列表为空,则可以返回null
或抛出Exception
:
public static String getRandomPage() {
List<String> pages = getAllPagesInDatabase();
if(pages == null || pages.size() == 0)
return null;
//get random page from the list
Random random = new Random();
int randomNumber = random.nextInt(pages.size());
return pages.get(randomNumber);
}