Java 运行自动测试时,绑定必须为正错误

Java 运行自动测试时,绑定必须为正错误,java,automation,Java,Automation,运行一组继承的自动测试时,我收到错误: 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 getRand

运行一组继承的自动测试时,我收到错误:

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);
}
public静态字符串getRandomPage(){
列表页面=getAllPagesInDatabase();
//从列表中获取随机页面
随机=新随机();
int randomNumber=random.nextInt(pages.size());
返回页面.get(随机数);
}
我见过其他帖子也有同样的问题,但如果能得到任何帮助,我将不胜感激。
我尝试通过将
pages.size()
更改为
pages.size()+1
来解决此问题,但它开始返回一个不同的错误
(索引0超出长度0的界限)

在返回其中一个之前,您应该检查列表的大小。因此,如果列表为空,则可以返回
null
或抛出
异常

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);
}
public静态字符串getRandomPage(){
列表页面=getAllPagesInDatabase();
如果(pages==null | | pages.size()==0)
返回null;
//从列表中获取随机页面
随机=新随机();
int randomNumber=random.nextInt(pages.size());
返回页面.get(随机数);
}

pages.size()似乎是0欢迎使用堆栈溢出!请拿着这本书,四处看看,仔细阅读,尤其是和您的方法
getAllPagesInDatabase()
返回一个空列表。可能的解决方案取决于这是否是预期的情况。这个答案很好,但请注意,您需要查看getRandomPage()的所有调用者,并确保他们能够处理空值——他们可能需要检查它。