今天在使用单例模式赋值时,出现了赋值失败的问题:
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。
更新
——————————————————————————————
应该是与懒汉模式的缺陷有关,没有加锁,可能出现了同时读写的操作
本文记录了一次使用单例模式进行对象赋值时遇到的失败情况,并探讨了问题可能的原因,涉及到懒汉模式与饿汉模式的区别,以及同步问题如何影响单例模式的正确实现。
760

被折叠的 条评论
为什么被折叠?



