Как стать автором
Обновить

Комментарии 6

Enum обладает рядом уникальных особенностей, таких как:

Таки каких? Ничего уникального в нижеследующем списке не обнаружено.

Возможность реализации интерфейсов;

Как и любой другой класс.

Собственное пространство имен;

В java нет такого понятия, что имеется ввиду?

Неявная реализация интерфейсов Serializable и Comparable;

Да, ла-а-адно. Прям неявно? Куда уж очевиднее?

public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable {}

В неявном виде класс реализует интерфейс java.lang.Enum

См. предыдущий пункт.

не может быть расширен от другого класса;

А как вы объясните вывод этого?

enum Abc {
  A,
  B {},
  C
}

System.out.println(Abc.A.getClass().getSuperclass());
System.out.println(Abc.B.getClass().getSuperclass());
System.out.println(Abc.C.getClass().getSuperclass());

Для сравнения значений Enum можно использовать операторы == и equals().

А можно не использовать. Как, собственно, и с любой другой статической константой.

В Java enum-классы имеют свои собственные конструкторы, которые объявляются с модификатором доступа private.

ЛПиП, конструктор объявлять можно и с областью видимости по умолчанию. Во-первых, приватным конструктор делает компилятор. Во-вторых, этот генерируемый конструктор отличается от объявляемого в классе.

А как вы объясните вывод этого?

тут, наверное, имелось в виду, что другие (наружные) классы не могут отнаследоваться от определённого enum'а (в вашем случае - Abc), т.к. конструкторы enum'а имеют модификатор доступа private
а в вашем коде - неявное наследование

Ого, статья опоздавшая на 20 лет!

Для сравнения значений Enum можно использовать операторы ==

Хорошо жить с одним системным загрузчиком классов!

А при чём тут количество загрузчиков классов?

Сравнивание enum-констант через == и equals отличается лишь тем, что будет один дополнительный вызов метода. Реализация equals не менялась с момента их появления.

Вы правы, сравнение enum'ов в динамических окружениях - в любом случае проблема.

Я понимаю, что это перевод, но для конторы, которая пытается обучать людей программированию, не указать про новый формат switch и как его использовать с enum, ну такое себе

Зарегистрируйтесь на Хабре, чтобы оставить комментарий