java - Java.util.random-“界限必须为正”

原文 标签 java random indexoutofboundsexception

我收到此错误:

java.lang.illegalException:
bound must be posotive

在下面的代码行中:
Random random = new Random();
Item randomItem;
randomItem = new Item("NAME_HERE", "DESCRIPTION_HERE", 0000);
int randomNumber = random.nextInt(randomItem.randomNames.size());   *** ERROR HERE?!
randomItem.name = randomItem.randomNames.get(randomNumber);
addItem(randomItem);

这仅发生在我调用上述方法的第二次。它看起来像(如果我尝试打印出randomNames arraylist的大小,它实际上变为0。但这不应该...这是randomItem,在其中创建randomNames arraylist的东西。影响力。
public ArrayList<String> randomNames;
randomNames.add("Key");
randomNames.add("Rock");
randomNames.add("Balloon");
randomNames.add("Boot");
randomNames.add("Knife");
randomNames.add("Pencil");

最佳答案

您的randomItems数组大小为0。检查是否

  • randomNames未声明为静态
  • Item构造函数填充randomItems数组
  • 相关文章:

    c# - 有什么方法可以在C#中生成随机数学表达式?

    python - 如何随机调用三个现有函数中的两个

    java - ArrayList.add引发ArrayIndexOutOfBoundsException

    java - 使用循环Java将值添加到ArrayList时尝试捕获

    java - 在Java中为客户端-服务器套接字通信实现协议(protocol)

    java - Spring 4.1.6.RELEASE:@RequestParam defaultValue和required = false不影响

    java - 设备上的比例坐标

    java - 如何在Java中定义CheckBoxes?

    c# - 从列表<string>中选择随机字符串,其中包含排除项和非重复性选择

    java - 如何使此合并数组方法保持边界?