1

Javaのシングルトンクラスを書きたいです。以下のようなサンプルプログラムを見つけました。

public class Singleton {
  private static Singleton singleton = new Singleton();

  private Singleton() {
    System.out.println("instance is created.");
  }

  public static Singleton getInstance() {
    return singleton;
  }
}

ご存じのように、コンストラクターはプライベート メソッドであり、呼び出されません。

シングルトン インスタンスを作成するにはどうすればよいですか?

インスタンスがJavaプログラムで作成されるときは?

ありがとうございました。

4

2 に答える 2

3

Joshua Bloch が彼の『Effective Java 2nd Edition 』の中で述べているように、Java 5 以降では、シングルトンを実装する最善の方法は列挙型を使用することです。

public enum Singleton {
    INSTANCE;
    // all the necessary methods go here
}

シングルトン実装のこのパターンは、特定のシリアライゼーション/デシリアライゼーションの問題を回避するのに役立ちます。詳細については、Effective Java 2nd Edition の項目 3 を参照してください。

于 2012-12-09T11:58:44.733 に答える
2

シングルトン インスタンスは、Singleton.getInstance() を初めて呼び出すときに作成されます。クラスがロードされ、singleton 変数が初期化され、getInstance() メソッドによって返されます。

于 2012-12-09T11:42:17.240 に答える