我是一個編程新手。請解釋一下,以便初學者能理解。我的數組是空的嗎?如果是這樣,爲什麼?錯誤「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