我是一个编程新手。请解释一下,以便初学者能理解。我的数组是空的吗?如果是这样,为什么?错误“java.lang.NullPointerException”
我试图建立一个彩票。 首先我用所需数量的数字填充数组。然后画一个数字。该号码从彩票中删除,并返回到主控台上打印的主号码。这一直重复直到所有的数字都被绘制出来。
这就是我想要的。但是我得到错误“java.lang.NullPointerException”。我的数组是空的吗?如果是这样,为什么?
import java.util.*;
public class Tombola {
private ArrayList<Integer> lottery;
private int numbers;
public Tombola(int n){
this.numbers = n;
ArrayList<Integer> lottery = new ArrayList<Integer>();
for(int i = 0; i < this.numbers; i++){
this.lottery.add(i+1);
}
}
public int draw(){
int drawnNumber = this.lottery.get((int) (Math.random() * numbers));
for(int i = 0; i < numbers; i++){
if(this.lottery.get(i) == drawnNumber){
this.lottery.remove(i);
break;
}
}
this.numbers--;
return drawnNumber;
}
public static void main(String[] args) {
int x = 10;
Tombola jackpot = new Tombola(x);
for(int i = 0; i < x; i++){
System.out.println(jackpot.draw());
}
}
}
定义'lottery'构造之外,作为类成员。 – Maroun