Java: Как воспроизвести Legen… dary ClassNotFoundException в Singleton?

В моем последнем интервью мне задали стандартный вопрос обо всех реализациях Singleton в java. И как они все плохи.

И мне сказали, что даже статическая инициализация плохая из-за вероятности непроверенного исключения в конструкторе:

public class Singleton {
    private static Singleton instance = new Singleton();

    public static Singleton getInstance() {
        return instance;
    }
    private Singleton() {
       throw new RuntimeException("Wow... Exception in Singleton constructor...");
    }
}

И они также сказали мне, что исключение будет «ClassNotFoundException», поэтому было бы чрезвычайно сложно найти исключение. проблема в реальном приложении.

Я попытался получить это исключение:

public static void main(String[] args) {
    new Thread(new Runnable(){
            public void run() {
                Singleton.getInstance();
            }
        }).start();
}

Но единственное, что я получил, это ExceptionInInitializerError ...

Я искал в Google это исключение, и везде, где я находил, все они говорили об одной и той же проблеме, о которой мне говорили в моем интервью. Ничего о "реализации" =)

Спасибо за внимание.

5
задан leshka 26 September 2011 в 10:06
поделиться