Java 1.5 (Tiger) からは、ひとつの要素だけを持つ enum 型を提供することでシングルトンを作成することができます。
public enum MySingleton {
INSTANCE;
public void greet() { ... }
}
private static なフィールドを利用してシングルトンクラスを作成する方法と比べ、下記のような利点があります。
implementes Serializable しなくてよい)readResolve メソッドを実装しなくてよい)