获得一个奇怪的空指针异常

时间:2014-11-15 15:42:56

标签: java nullpointerexception

我在这一行得到一个空指针异常:

private ArrayList<DrawableEntity> entitiesToDraw = Loader.instance().getDrawableEntities();

Loader的构造函数显然没有问题:

public static Loader instance() {
    if (instance == null) {
        new Loader();
        System.out.println("Loader ready");
    }
    return instance;
}

因为我收到消息“Loader ready”。 我不明白,问题似乎是在调用getDrawableEntities()之前,但我什么都没看到,它不在getDrawableEntities()里面。

3 个答案:

答案 0 :(得分:5)

您忘了将其分配给instance

   public static Loader instance() {
      if (instance == null) {
        instance = new Loader();
        System.out.println("Loader ready");
       }
     return instance;
   }

顺便说一下,如果那是一个单身,那么它是错误的(不是线程安全的),Here's a way to implement the singleton pattern

答案 1 :(得分:4)

public static Loader instance() {
    if (instance == null) {
        instance = new Loader();
        System.out.println("Loader ready");
    }
    return instance;
}

您忘了分配instance变量

答案 2 :(得分:2)

当它为null时,您没有设置实例值。它应该是:

if (instance == null) {
    instance = new Loader();
    System.out.println("Loader ready");
}