Java 声明初始值的序数是 0。我可以假设当我创建这样的枚举时:
public enum Direction {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, ...}
的序数TUESDAY
总是1,WEDNESDAY
总是2,...?
我会更具体一点。我声明一个枚举:
public enum Direction {UP,RIGHT,DOWN,LEFT}
现在有一种方法可以旋转 90 度(顺时针)。这是与序数的一行:
direction = Direction.values()[direction.ordinal()+1 % Direction.values().length];
如果我不使用序数,我将不得不使用 switch 语句或条件:
switch (direction) {
case LEFT:newdirection = Direction.UP;
break;
etc...
}
使用序数有几个优点:
- 更短的代码
- 更快的代码(可以忽略不计)
- 如果添加了方向(例如
DOWN_LEFT
),如果您将新方向放在正确的位置,则实施不一定要更改
你怎么看?