java - switch 语句中的变量数 - Java

标签 java switch-statement enumeration enumerated-types

能否在 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/

相关文章:

也发送文件的Java聊天程序

java - 在对话框中对齐复选框

java - 加密和解密两个系统之间的消息

java - SoftHSM2 java 不工作

swift - Enumerations 的枚举和避免使用 Any 类型

c++ - 为枚举类型赋值

c++ - 跳转绕过 switch 语句中的变量初始化

swift - 快速切换错误? - "Switch must be exhaustive, consider adding a default clause."

c++ - 可乐机代码的 switch 语句

c# - PowerShell 和 C# 在枚举集合时的区别