繁体   English   中英

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

[英]Getting a weird null pointer exception

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

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()内部。

您忘记将其分配给instance

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

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

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

您忘记分配instance变量

您未设置实例值为null时。 它应该是:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM