我有一个像这样的枚举类:
public enum Position {
A1(0,0),
A2(1,0),
//etc
public final int dy, dx;
private Position(int dy, int dx) {
this.dy = dy;
this.dx = dx;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想要一个方法:public static Position getPosition(int dx, int dy)
我可以返回Position.A1或Position.A2使用给定的dx并且dy不使用大量的if结构吗?
也许最简单的方法(实际上相对较快)就是简单地循环遍历枚举:
public static Position getPosition(int dx, int dy) {
for (Position position : values()) {
if (position.dx == dx && position.dy == dy) {
return position;
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7091 次 |
| 最近记录: |