2011-06-17 148 views
3

我有時會因缺乏與juCalendar類型安全的沮喪,想知道是否有一個良好的原因爲日曆的API,已經超過我的頭不使用枚舉,或者如果唯一的原因是,它很可能寫在枚舉之前是語言的一部分,不值得打破舊代碼。爲什麼java.util.Calendar不使用枚舉?

一個輔助子的問題是:是否值得我的時間來創建一個圍繞Calendar類更類型安全的包裝或者已經這樣做過?


摘要:Calendar一直圍繞自從Java 1.1,而Enums只有在Java 5中做到了,JODA Time被認爲是最好的替代包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/en/jsr/detail?id= 336)將它列爲**推遲到未來的Java SE版本**。它可能包含在Java SE 8([JSR 337](http://jcp.org/en/jsr/detail?id=337))中。 –

回答

7

編寫日曆時,枚舉不是Java的一部分。他們沒有因爲忽視而被添加,擔心打破向後兼容性,沒有足夠的優先權,那些不同意你的開發者 - 請選擇你的選擇。

6

枚舉作出自己的方式進入語言之前它被實施(枚舉到達第5版)。

JODA Time被廣泛認爲是最好的替代包裝。

+0

JODA時間似乎並不使用枚舉,而是使用靜態const int。 – Kevin

2

Calendar類自Java 1.1以來一直存在,這就是爲什麼它不使用Enums

我強烈推薦使用Joda time而不是火車殘骸java.util.Calendar

相關問題