Home >Java >javaTutorial >How are Singleton Instances Created in Java Enums?
Singleton Implementation using Enums in Java
It has been noted that the Singleton pattern can be implemented in Java using enums, as demonstrated by the following code:
public enum MySingleton { INSTANCE; }
However, questions arise regarding the instantiation process. Traditional object instantiation involves invoking the constructor, but in enums, this is not explicitly done.
Instantiating Enums
Enums have an implicit empty constructor. To make it explicit, you can add it to the enum definition:
public enum MySingleton { INSTANCE; private MySingleton() { System.out.println("Here"); } }
Now, if you create a class with a main method and instantiate the Singleton enum:
public static void main(String[] args) { System.out.println(MySingleton.INSTANCE); }
You will see the following output:
Here INSTANCE
Enum fields are essentially instances of the enum type. They are constructed when the enum type is first referenced. Hence, when you access the INSTANCE field in the main method, it triggers the instantiation of MySingleton and its constructor runs, printing "Here" to the console.
The above is the detailed content of How are Singleton Instances Created in Java Enums?. For more information, please follow other related articles on the PHP Chinese website!