Home >Java >javaTutorial >How are Singleton Instances Created in Java Enums?

How are Singleton Instances Created in Java Enums?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-03 22:00:21712browse

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn