单例被反序列化或者反射破坏

2019-02-28  本文已影响0人  悟空嘿

一、单例在序列化和反序列化时,会被破坏,解决方法:重写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();

}

}

上一篇 下一篇

猜你喜欢

热点阅读