Очевидно, что приведенная абстракция не отражает всех тонкостей работы enum. Если, например, в рамках задачи мы попробуем вывести System.out.println(Month.JANUARY), то получим ссылку на объект "com.javarush.task.pro.task13.task1317.Month@b4c966a". Соответственно, интересно за счет чего достигается возврат имени объекта, а не ссылки при таком обращении 🙃
(Вопрос к задаче task13.task1317 - Трансформируем enum в класс)
Daisy
33 уровень
Почему в enum при обращении к Day.MONDAY нам возвращается MONDAY, а не крокозябра вида Day@b4c966a?
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
fog
14 июля 2022, 07:56
В классе java.lang.Enum, который является родителем всех enum-классов, переопределён метод toString()...
0
Вадим
14 июля 2022, 07:55решение
У меня этой задачи не было, но может поможет:
Метод println() автоматически вызывает метод toString() у объекта, который в него передали.
В классе Month этот метод переопределен и возвращает сам месяц.
Если же Вы создадите свой класс и не переопределите в нем toString(), то будет вызван toString() по умолчанию, который реализован в классе Object. А он как раз таки возвращает ссылку.
+2