Почему java.util.Calendar не использует Enums? - PullRequest
3 голосов
/ 17 июня 2011

Я иногда расстраиваюсь из-за отсутствия безопасности типов в juCalendar и спрашиваю себя, была ли хорошая причина для того, чтобы не использовать перечисления в Календарном API, которые были у меня над головой, или единственная причина в том, чточто он, вероятно, был написан до того, как перечисления стали частью языка и не стоит ломать старый код.

Вторичный подвопрос: стоит ли мое время для создания более безопасной оболочки типа вокруг класса Calendarили это было сделано раньше?


Резюме: Calendar существует с Java 1.1, тогда как Enums сделал это только в Java 5, JODA Time считается лучшей заменой для Calendar.

Ответы [ 3 ]

7 голосов
/ 17 июня 2011

Перечисления не были частью Java, когда был написан Календарь. Они не были добавлены из-за пренебрежения, страха нарушения обратной совместимости, недостаточного приоритета, разработчиков, которые не согласны с вами - сделайте свой выбор.

6 голосов
/ 17 июня 2011

Это было реализовано до того, как перечисления проникли в язык (перечисления появились в версии 5).

JODA Time считается лучшей заменой.

2 голосов
/ 17 июня 2011

Класс Calendar существует с Java 1.1, поэтому он не использует Enums.

Я настоятельно рекомендую использовать Время Joda , а не крушение поезда, которое java.util.Calendar.

...