In the 2nd edition of his book Effective Java, Joshua Bloch suggested the preferred way to implement singletons in Java. Instead of the traditional way of using a private constructor which he said has some problems (I am not going to spoil all the funs here, you need to read his book to find out what they are):


public class Foo{
private static final Foo INSTANCE = new Foo();
private Foo(){}
public static Foo getInstance(){ return INSTANCE; }
}

the new preferred way to implement singletons in Java in now (since 1.5) using enum:

public enum Foo {
INSTANCE;
public void bar() { ... }
}


so there, we know that when Joshua Bloch says this is the preferred way, people will start preaching about it in code reviews and other techno discussions. With this knowledge you can now be that (annoying :-D) guy who advocates this.