【发布时间】:2015-03-13 22:26:30
【问题描述】:
我有这个枚举:
public enum Direction {
NORTH, WEST, SOUTH, EAST;
}
还有这个方法:
public void turn(int n){
for (int i = 0; i < n; i++){
//Change compass direction n times
}
}
我需要做的是逆时针将方向改变 90 度,输入“n”次。我设置了枚举,以便它以正确的顺序排列,我只是不确定如何制作它,因此当前值 compassDirection 可以通过枚举“n”次迭代来更改。
【问题讨论】:
-
看看
Direction.values()返回什么...我会考虑向枚举本身添加方法以返回“此枚举值顺时针旋转 90 度”或“此枚举值旋转 90 度”逆时针”。命名很棘手,但您肯定要确保它并不意味着调用会改变现有值。对于实现,您可以使用ordinal()计算出“this”是哪个值,然后使用values()返回的数组来查找邻居。