我尝试获得随机整数,但我得到nullpointerexception。我想得到ArrayList与第一个元素我在beggining添加,这是正确的。下一个元素我想从answersdata [10]获得三个随机字符串。我检查了答案数据是我想要的元素。 answersdata是String [] 我在这行中有错误:
nr1 = rand.nextInt(10);
此方法的所有代码:
private void set_answer(int nrquestion) {
int nr1, nr2, nr3;
answers.add(answersdata[nrquestion]);
do{
nr1 = rand.nextInt(10);
}while(nr1==nrquestion);
answers.add(answersdata[nr1]);
do{
nr2 = rand.nextInt(10);
}while(nr2==nrquestion|| nr2==nr1);
answers.add(answersdata[nr2]);
do{
nr3 = rand.nextInt(10);
}while(nr3==nrquestion|| nr3==nr1 || nr3==nr2);
answers.add(answersdata[nr3]);
Collections.shuffle(answers);
}
当我写静态数字时,例如:
nr1 = 5;
答案 0 :(得分:1)
好像你忘了用随机对象初始化rand。
随机rand = new Random(); //在尝试在rand上调用之前
答案 1 :(得分:0)
或许展示一种快速方法可以解释它如何比实际解释更好:
public int generateRandomNumberBetween(int min, int max){
return min + new Random().nextInt(max - min + 1);
}
上述方法将生成[min,max](包括)之间的数字。鼓励您在某处创建一个常量Random
实例,这样您就不必在每次方法调用时都继续创建新的1。