java - Why am I unexpectedly able to create multiple instances of my singleton class? -


as per knowledge singleton design pattern means can create 1 single object of class.

the following code running without error/exception.

i expect code fail because singletonexample class has private default constructor.

public class singletonexample {     private static singletonexample singletoninstance;      private singletonexample() {     }      public static singletonexample getsingletoninstance() {         if (null == singletoninstance) {             system.out.println("creating new instance");             singletoninstance = new singletonexample();         }         return singletoninstance;     }      public void printsingleton(){         system.out.println("inside print singleton");     }      public static void main(string a[])  {         singletonexample singobj1 = new singletonexample();         singletonexample singobj2 = new singletonexample();     } } 

is there wrong code?

because main method in class singletonexample, main code can access private constructor.

try moving main method class.


Comments