我已经定义了这个代码。
public class AAA {
public static final Map<String, String> gList = new HashMap<> {{
put("xxx", "xxx");
put ....
}};
public static AAA instance;
public static AAA getInstance() {
if (instance == null)
instance = new AAA();
return instance;
}
public String calledFunc(String k) {
return gList.get(k);
}
}
public class BBB {
...
public void callingFunc(String k) {
AAA.getInstance().calledFunc(k); // <= NULL pointer some time
}
}
这是因为内存分配失败还是会在某个地方被释放。只是不明白我的代码有什么问题。也许这不是可靠的初始化方式。