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.