【发布时间】:2013-09-23 21:16:42
【问题描述】:
我想声明一个枚举方向,它有一个返回相反方向的方法(以下语法不正确,即无法实例化枚举,但它说明了我的观点)。这在 Java 中可行吗?
代码如下:
public enum Direction {
NORTH(1),
SOUTH(-1),
EAST(-2),
WEST(2);
Direction(int code){
this.code=code;
}
protected int code;
public int getCode() {
return this.code;
}
static Direction getOppositeDirection(Direction d){
return new Direction(d.getCode() * -1);
}
}
【问题讨论】:
-
只需使用开关即可。您只有 4 个案例。
-
顺便说一句,
d.getCode() * -1==-d.getCode() -
Bloch's Effective Java 的第 6 章(至少在 2E 中)可能很有趣,强烈推荐。
-
ntu.edu.sg/home/ehchua/programming/java/javaenum.html,第2.1节已经很好地解释了这个概念
标签: java enums enumeration