Когда я читаю "Эффективная Java", автор сказал мне, что одноэлементный тип enum - лучший способ реализовать синглтон, потому что нам не нужно рассматривать сложные атаки сериализации или отражения. Это означает, что мы не можем создать экземпляр enum используя отражение, верно?
Я провел несколько тестов с классом enum:
public enum Weekday {}
Затем я попытался создать экземпляр Weekday:
Class<Weekday> weekdayClass = Weekday.class;
Constructor<Weekday> cw = weekdayClass.getConstructor(null);
cw.setAccessible(true);
cw.newInstance(null);
Как вы знаете, это не сработает. Когда я меняю ключевое слово enum на class, он работает. Я хочу знать, почему. Спасибо.