Enum Java Singleton

tl; dr

se você tem uma classe Java que tem um dos antigos antipadrões de um singleton (primeiro pergunte-se por que você precisa de um singleton, mas essa é uma história diferente)

tudo que você precisa fazer é partir disso

public class Foo {

private Foo() {

}

public static Foo getInstance() {
// whatever method you used before
}

//class body
}

para isso

public enum Foo {
INSTANCE
;

// class body

// no need for private constructor
// no need for getInstance, just use Foo.INSTANCE

}

E é isso.

http://stackoverflow.com/questions/70689/what-is-an-efficient-way-to-implement-a-singleton-pattern-in-java