我在这一行得到一个空指针异常:
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()里面。
答案 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");
}