我已定义此代码。
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
}
}
这是因为内存分配失败还是会释放一些地方。只是不要 了解我的代码中有什么问题。也许这不是初始化的可靠方法。
答案 0 :(得分:1)
我尝试做类似于此类的事情,以便在类之间保存数据,我最终选择了Enum
尝试这样的事情吗?
public enum AAA {
INSTANCE;
public static final Map<String, String> gList = new HashMap<> {{
put("xxx", "xxx");
put ....
}};
public String calledFunc(String k) {
return gList.get(k);
}
}
如果你这样做,你可能不会真正需要Enum中的功能,因为你可以做到
public class BBB {
...
public void callingFunc(String k) {
AAA.gList.get(k); // <= NULL pointer some time
}
}