ホームページ >Java >&#&チュートリアル >Java Enum でシングルトン インスタンスはどのように作成されますか?

Java Enum でシングルトン インスタンスはどのように作成されますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-03 22:00:21623ブラウズ

How are Singleton Instances Created in Java Enums?

Java で列挙型を使用したシングルトン実装

シングルトン パターンは、次のように列挙型を使用して Java で実装できることに注意してください。次のコード:

public enum MySingleton {
     INSTANCE;   
}

ただし、インスタンス化プロセスに関して疑問が生じます。従来のオブジェクトのインスタンス化にはコンストラクターの呼び出しが含まれますが、列挙型ではこれは明示的に行われません。

列挙型のインスタンス化

列挙型には暗黙的な空のコンストラクターがあります。これを明示的にするには、列挙型定義に追加します。

public enum MySingleton {
    INSTANCE;
    private MySingleton() {
        System.out.println("Here");
    }
}

次に、main メソッドを使用してクラスを作成し、シングルトン列挙型をインスタンス化するとします。

public static void main(String[] args) {
    System.out.println(MySingleton.INSTANCE);
}

次の出力が表示されます。

Here
INSTANCE

Enum フィールドは、本質的に enum 型のインスタンスです。これらは、列挙型が最初に参照されるときに構築されます。したがって、メイン メソッドの INSTANCE フィールドにアクセスすると、MySingleton のインスタンス化がトリガーされ、そのコンストラクターが実行され、「Here」がコンソールに出力されます。

以上がJava Enum でシングルトン インスタンスはどのように作成されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。