2013-02-14 121 views
0

這是一個令我困惑的一段時間的疑問。比較枚舉int,日曆類

,以比較日曆枚舉valune,例如使用Calendar類:所以基本上

Calendar c = Calendar.getInstance(); 

if (c.SUNDAY == c.getFirstDayOfWeek()); //US local 
System.out.println("indeed"); 

,我想知道如何纔能有可能實際上是一個枚舉(星期日)比較getFirstDayOfWeek( )方法返回一個int。

在此先感謝您的答案。

+0

'Calendar.SUNDAY'不是一個枚舉值,因爲'Calendar'(顯然不夠)不是'enum',這是一個'class'。它是一個'public static final int' - 一個整數常量。 javadocs會告訴你thig。 – millimoose 2013-02-14 11:44:39

回答

1

SUNDAY是Calendar API中的靜態最終字段。它不是一個枚舉。和getFirstDayOfWeek()返回一個int值(int表示中的星期幾),因此比較有效。

Calendar Source:

576  public final static int SUNDAY = 1; 
+0

好吧,即使我檢查了API,我確信它們被設置爲枚舉。我的不好,我不得不深入搜索,以克服我的疑問。謝謝。 – Rollerball 2013-02-14 11:47:45

+0

@Rollerball API wodn't謊言會呢?? ..嘿,你可以隨時檢查源在線:) – PermGenError 2013-02-14 11:49:03

1

c.SUNDAY也是一個int(而不是一個枚舉),所以沒有問題。

日曆最終值存儲爲int。

這樣,當實際執行(int)實際上並不重要時,它會爲所有常量創建一個「通用語言」。

Calendar class