如果我实现一个Singleton既可以通过持有人的成语或双检查锁定,但而不是调用“的getInstance()”,使用反射来实例化,然后调用“的getInstance()”就可以了,这样会创建两个实例,打破格局。
所以我静“反”成员添加到类,增加它在类的私有构造函数,如果它穿过抛出一个异常“1”。 但在这种情况下,如果我第一次通过反射实例化,没有人将能够调用“的getInstance()”未抛出异常。
那么,如何延迟加载一个Singleton又防止它从这次攻击? (我知道的“枚举”的格局,但有些人认为它实际上是一个黑客检查的这一公认的答案意见: ?这是辛格尔顿,以序列化和反射攻击性和顺便说一句,我的问题是不同的)。
编辑:我认为这是可能的,以防止它在DCL的情况下,通过静态计数器字段,基于类的同步构造和分配“这”的静态成员。 然而,不知道如何防止它在支架成语的情况。