public class Abc{
private static Abc abc = new Abc();
private static Map STORE = new HashMap();
private Abc() {
_init();
}
public static Abc createAbc() {
return abc;
}
/**
* 初始化
*/
private void _init() {
STORE.size();//报Null异常
}
}
把代码中的2句颠倒即可:
private static Abc abc = new Abc();
private static Map STORE = new HashMap();
->
private static Map STORE = new HashMap();
private static Abc abc = new Abc();
这是初始化时,先执行了new Abc(),在Abc里再执行_init,所以还没有执行STORE赋值,所以为Null。
没有评论:
发表评论