今天在使用单例模式赋值时,出现了赋值失败的问题:
User user=new Gson().fromJson(u, User.class);
Test.getInstance().user=user;
第二句得到为null
Test.class
public class Test {
private static Test test;
public User user;
public String cookie="";
private Test(){}
public static Test getInstance() {
if (test == null)
return new Test();
else
return test;
}
}
以前我也这样用过,但是没有出现赋值失败的情况,上述为懒汉模式,当我把懒汉改为饿汉时赋值成功,或者懒汉中对user实例化,也能赋值成功。
暂时不懂赋值失败的原因,记录一下这个BUG。
更新
——————————————————————————————
应该是与懒汉模式的缺陷有关,没有加锁,可能出现了同时读写的操作