final estático público de singleton

Eu estive pensando sobre singletons em Java. Por convenção, um singleton é configurado assim:

private static MyClass instance = null;
public static MyClass getInstance(){
    if (instance == null){
        instance = new MyClass();
    }
    return instance;
}
private MyClass(){}

Recentemente, mudei para o seguinte:

public static final MyClass instance = new MyClass();
private MyClass(){}

Isso é muito mais curto, mais rápido, pois não há verificação nula e digitandoMyClass.instance parece melhor para mim do que digitarMyClass.getInstance(). Existe alguma razão para que o segundo não seja a maneira principal de fazer isso?

questionAnswers(4)

yourAnswerToTheQuestion