一、单例在序列化和反序列化时,会被破坏,解决方法:重写readResole(){return singleten};
二、防止反射破坏单例模式,构造函数调用时进行处理,当构造函数第2次被调用时抛出异常!修改构造方法如下:
private static boolean flag = false;
// 构造方法是私有的
private SingetonTest(){
if(flag){
flag = !flag;
}
else{
try {
throw new Exception("duplicate instance create error!" + SingetonTest.class.getName());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
网友评论