2016-06-06 103 views
-1
public class Tirage { 
    private LinkedHashSet<Integer> grille; 

    public Tirage(){ 
     Set<Integer> grille = new LinkedHashSet<Integer>(); 
    } 

    public void ajouterNombre(Integer i) throws TirageException{ 
     if (i>= 1 && i<=90) { 
      this.grille.add(i); //this is where i got the pointer null exception 
     } 
     else{ 
      throw new TirageException("Veuillez entrer un nombre conforme"); 
     } 
    } 
} 
+0

this:https://en.wikipedia.org/wiki/Variable_shadowing – njzk2

回答

0

this.grille尚未在該上下文中實例化。在你的構造函數中,你甚至可以創建一個不同類型的不同實例。

在構造函數中刪除私有變量的類型:

public Tirage(){ 
    grille = new LinkedHashSet<Integer>(); 
} 
2

問題很簡單,

private LinkedHashSet<Integer> grille; 

這裏你是不是初始化grille場,

甚至沒有這裏,

public Tirage(){ 
     Set<Integer> grille = new LinkedHashSet<Integer>(); 
    } 

所以,只要做到這一點,

public Tirage(){ 
     this.grille = new LinkedHashSet<Integer>(); 
    } 

這將有一個新的對象實例初始化grille場。

+0

我建議使用'this.grille = new ...'來最明確地說你想初始化'this'的實例屬性, class – mmcrae

+0

謝謝,我剛剛更新了它。 –