Java.util.random - "Bound must be positive"

标签 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 数组

关于Java.util.random - "Bound must be positive",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26516302/

相关文章:

java - 每次测试后是否必须清理 Jimfs 文件系统?

python - 如果列表中有 2 个或更多模式,则模式的随机输出

java - 我的 squaretest 也没有分析其他大小和 ArrayIndexOutofBoundsException

java.lang.ArrayIndexOutOfBoundsException : 48

java - 如何从文件夹中获取随机文件?

java - 发现索引越界异常

JScrollPane 中的 java 巨大的 BufferedImage

java - 从 SQLite 进行计算

java - 静态方法隐藏

C: initstate_r 崩溃