2011-06-17 13 views
3

時にはjuCalendarで型の安全性が欠如していることに不満を持ち、が良いかどうか疑問に思ったカレンダーAPIでenumを使用しない理由があるか、列挙型の前に書かれたものは言語の一部であり、古いコードを破る価値はありません。java.util.CalendarでEnumを使用しないのはなぜですか?

副次的な質問は次のとおりです。カレンダークラスの周りでより安全なラッパーを作成するのには時間がかかるのですか?


概要:Enumsは唯一のJava 5、JODA Timeにそれを作ったのに対し、Calendarは、Java 1.1以降の周りされているがCalendarための最良の交換用パッケージと考えられています。

+0

Java 7では、JSR-310(http://sourceforge.net/apps/mediawiki/threeten/index.php)で日付と時刻の処理が更新されることを願っています。これをリードするのは、ジョーダタイムの後ろにいる男の一人であるStephen Colebourneです。 – Qwerky

+0

@Qwerky:http://openjdk.java.net/projects/jdk7/features/のリストにはありません。[JSR 336](http://jcp.org/ja/jsr/detail?id= 336)は**将来のJava SEリリースに延期**しています。 Java SE 8([JSR 337](http://jcp.org/ja/jsr/detail?id=337))に含まれている可能性があります。 –

答えて

7

カレンダーの書き込み時に列挙型はJavaの一部ではありませんでした。放棄、後方互換性の不安、優先順位不足、開発者に同意しない開発者の不安などの理由で追加されていません。

6

enumが言語に移行する前に実装されました(バージョン5に達した列挙型)。

JODA Timeは、最良の交換パッケージと広く考えられています。

+0

JODA Timeは静的const intを使用する代わりにenumを使用していないようです。 – Kevin

2

Calendarクラスは、Java 1.1以降であり、Enumsを使用していません。

列車の難破車であるjava.util.Calendarではなく、Joda timeを使用することを強くお勧めします。

関連する問題