我在linkedhashset上得到了一个指针null异常

时间:2016-06-06 17:35:12

标签: java nullpointerexception

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");
        }
    }
}

2 个答案:

答案 0 :(得分:2)

问题很简单,

private LinkedHashSet<Integer> grille;

此处您尚未初始化grille字段

,甚至不在这里,

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

所以,就这样做,

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

这将使用新的对象实例初始化您的grille字段。

答案 1 :(得分:0)

this.grille尚未在该上下文中实例化。在构造函数中,您甚至可以创建不同类型的不同实例。

删除构造函数中私有变量的类型:

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