如何使用Random.nextInt()?

时间:2014-01-12 03:42:06

标签: java android nullpointerexception

我尝试获得随机整数,但我得到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;

2 个答案:

答案 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。