0

DrJava 在编译一个非常简单的 switch 语句时遇到问题。

这是一个简单的例子:

switch (sc.next()) {
  case "abc": output = 0; break;
  case "bcd": output = 1; break;
}

DrJava 在第一行返回以下消息。

错误:无法打开 java.lang.String 类型的值。只允许可转换的 int 值或枚举常量

SSH Secure Shell 编译没问题,听说switch(String) 早就实现了。我可以做些什么来解决 DrJava 上的这个问题?

*我的 DrJava 是最新版本。

4

3 回答 3

1

你的 Java 版本是多少?字符串上的 switch 语句仅在 Java 7 中开始。

否则,您将不得不使用旧的 if 条件:

String text = sc.next()

if(text.equals("abc")) {
    output = 0;
} else if (text.equals("bcd")) {
    output = 1;
}
于 2014-03-25T07:37:00.950 回答
0

您只能在 Java7 中这样做,如此处所示您的另一种选择是使用if语句。如果您想查看您正在运行的 Java 版本,请在控制台中输入java -v或输入java --version您拥有的版本。

于 2014-03-25T07:37:47.200 回答
0

在 JDK 7 中,我们可以在 switch 中使用字符串比较。在早期的 Java 版本中,如 (6,4,..)。我们不能在 switch 语句中使用字符串。

于 2014-03-25T07:39:14.900 回答