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 サイトの他の関連記事を参照してください。