Веб-приложение: Высокая доступность / Как предотвратить единую точку отказа?

Чтобы преодолеть проблему, вызванную рефлексией, используются перечисления, поскольку java обеспечивает внутренне, что значение перечисления создается только один раз. Поскольку java Enums доступны по всему миру, их можно использовать для одиночных игр. Его единственный недостаток заключается в том, что он не является гибким, и это не допускает ленивой инициализации.

public enum Singleton {
 INSTANCE
}

public class ReflectionTest 
{

    public static void main(String[] args)
    {
        Singleton instance1 = Singleton.INSTANCE;
        Singleton instance2 = Singleton.INSTANCE;
    System.out.println("instance1 hashcode- "
                                      + instance1.hashCode());
        System.out.println("instance2 hashcode- "
                                      + instance2.hashCode());
    }
}

JVM обрабатывает создание и вызов конструкторов enum внутри. Поскольку перечисления не дают определение своего конструктора программе, мы не можем получить к ним доступ также с помощью Reflection.

Подробнее см. В сообщении.

44
задан Anony-Mousse 4 January 2012 в 11:55
поделиться