能否在 Java 的 switch
语句中包含多个变量?
enum Facing { North, South, East, West }
enum Forward { Right, Left }
Forward forward;
Facing facing;
Integer myNumber;
看起来像这样?如果是这样,我将如何着手实现
switch (facing, forward) {
case North, Right : facing 1 = East
}
我知道这是错误的,但想知道这种技术是否可行以及我将如何实现它?
最佳答案
Eng.Fouad给出了一种解决方法。
另一种替代方法可能是创建一个更复杂的 Facing 枚举,如下所示:
enum Facing {
North {
Facing right() { return East; }
Facing left() { return West; }
},
East {
Facing right() { return South; }
Facing left() { return North; }
},
South {
Facing right() { return West; }
Facing left() { return East; }
},
West {
Facing right() { return North; }
Facing left() { return South; }
};
abstract Facing right();
abstract Facing left();
}
这样的结构还允许简单的链接,这样你就可以像这样编写一个通用的反向例程:
Facing reverse(Facing facing) { return facing.right().right(); }
关于java - switch 语句中的变量数 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6473237/