Java中如何破坏单例模式呢?
下文笔者讲述java中破坏单例模式的方法及示例分享,如下所示
破坏单例模式的实现思路
我们只需使用反射的方式
即可破坏单例模式,使其出现两个单例对象
例:破坏单例模式的示例
package com.java265.a;
public class Singleton {
private static class SingletonHolder {
private static final Singleton INSTANCE = new Singleton();
}
private Singleton() {
}
public static Singleton getInstance() {
return SingletonHolder.INSTANCE;
}
}
测试类:
package com.java265.a;
import java.lang.reflect.Constructor;
public class Demo {
public static void main(String[] args) {
Class<?> singletonClass = Singleton.class;
try {
Constructor c = singletonClass.getDeclaredConstructor(null);
c.setAccessible(true);
Object singleton1 = c.newInstance();
Object singleton2 = c.newInstance();
System.out.println(singleton1 == singleton2);
} catch (Throwable e) {
e.printStackTrace();
}
}
}
----运行以上代码,将输出以下信息-----
false
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


