2013-02-14 85 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