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

Spo*_*oky 1 java nullpointerexception

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

private ArrayList<DrawableEntity> entitiesToDraw = Loader.instance().getDrawableEntities();
Run Code Online (Sandbox Code Playgroud)

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

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

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

Sle*_*idi 5

你忘了把它分配给 instance

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

顺便说一句,如果那是一个单身,那么它是错误的(不是线程安全的),这是一种实现单例模式的方法.