在java.time.DayOfWeek
源代码纵观透露:Java枚举如何从1开始?
那么,怎样才能DayOfWeek.MONDAY = 1
?我问,因为我使用GWT,它不支持新的java.time
东西(或永远不会是idk)。所以我做了我自己的版本DayOfWeek
,但是那个得到了public int getValue() { return ordinal() + 1; }
这真的很烦人,因为我不得不每次都调用它。
这就是为什么我很好奇为什么上面的版本,从1开始。我想知道的另一件事就是为什么F该有开始与1而不是与0就像所有其他的枚举做。他们可能已经去了Monday = 0
,Tuesday = 1
等,但没有!他们改为从Sunday = 0
,Monday = 1
等转到那里。
不,这不是一个选项
public enum MyDayOfWeek {
DUMMY,
MONDAY, TUESDAY, // ..
;
}
很简单,因为这将是烦人:
for(MyDayOfWeek day : MyDayOfWeek.value() {
if(MyDayOfWeek.DUMMY == day) {
continue;
}
}
[摘要]
如果用户定义枚举总是从第一个具有值'0'的元素开始,那么第一个元素如何呢? java.time.DayOfWeek
枚举的nt以'1'开始,并且有没有办法让我的枚举以'1'而不是'0'开始?
*那么DayOfWeek.MONDAY = 1怎么样?*因为它确实是 –
@NathanHughes如果(DayOfWeek.FOOBARDAY ==天){继续; }' – displayname
这实际上取决于你在哪个国家。在美国,这周的第一天是星期天。因此0和星期一为1.在其他地方,星期的第一天是星期一0.如果您正在使用使用日历的应用程序,则必须允许第一天依赖于位置。 – durbnpoisn