28 lines
939 B
Java
28 lines
939 B
Java
package javadevjournal.design.creational.singleton.breakit;
|
|
|
|
import java.lang.reflect.Constructor;
|
|
|
|
/**
|
|
* @author Kunwar
|
|
*/
|
|
public class BreakSingletonUsingReflection {
|
|
public static void main(String[] args) {
|
|
Singleton singleton1 = Singleton.instance;
|
|
Singleton singleton2 = null;
|
|
try {
|
|
Constructor[] constructors =
|
|
Singleton.class.getDeclaredConstructors();
|
|
for (Constructor constructor : constructors) {
|
|
// Below code will destroy the singleton pattern
|
|
constructor.setAccessible(true);
|
|
singleton2 = (Singleton) constructor.newInstance();
|
|
break;
|
|
}
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
System.out.println("instance1.hashCode(): " + singleton1.hashCode());
|
|
System.out.println("instance2.hashCode(): " + singleton2.hashCode());
|
|
}
|
|
}
|