单利模式反射攻击
来源:8-7 单例设计模式-反射攻击解决方案及原理分析
丿恶搞丿
2019-08-05
不明白为什么:
写回答
1回答
-
geelylucky
2019-08-05
同学,你就把newInstance()看作是调用构造函数,当调用getInstance()后,会根据判断决定是否调用构造函数,第一次调用getInstance()肯定是要去调用构造函数的,当再去调用newInstance(),又去调用构造函数,这个时候lazySingleton不为空,就抛异常。
先调用newInstance(),再调用getInstance(),因为getInstance()做了判断,根据lazySingleton是否有值决定要不要创建对象,所以不会抛异常。
00
相似问题