DrJava交换机(字符串)问题

DrJava交换机(字符串)问题,java,drjava,Java,Drjava,DrJava在编译非常简单的switch语句时遇到问题 这是一个简单的例子: switch (sc.next()) { case "abc": output = 0; break; case "bcd": output = 1; break; } DrJava在第一行返回以下消息 错误:无法打开java.lang.String类型的值。只允许使用可转换的int值或枚举常量 SSH-secureshell在编译它时没有问题,我听说switch(String)很久以前就已经实现了。我可以做

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

这是一个简单的例子:

switch (sc.next()) {
  case "abc": output = 0; break;
  case "bcd": output = 1; break;
}
DrJava在第一行返回以下消息

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

SSH-secureshell在编译它时没有问题,我听说switch(String)很久以前就已经实现了。我可以做些什么来解决DrJava上的这个问题


*我的DrJava是最新版本。

您的Java版本是什么?字符串上的Switch语句仅在Java7中启动

否则,如果出现以下情况,则必须使用良好的旧设备:

String text = sc.next()

if(text.equals("abc")) {
    output = 0;
} else if (text.equals("bcd")) {
    output = 1;
}

您只能在Java7中这样做,如图所示,您的另一种选择是使用
if
语句。如果您想查看正在运行的Java版本,在控制台中键入
Java-v
Java--version
应该会给出您的版本。

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

switch(String)可用于java7及更高版本。请检查您的java版本,如果它小于java7,则您不能使用switch(String)。我不知道什么是DrJava,但自java7以来支持打开字符串。如果你使用Java6或者更老的JDK,那就无法编译。我强烈怀疑DrJava基本上不了解Java7的特性。有什么理由需要使用这个而不是(比如)Eclipse或Netbeans吗?谢谢你们的帮助。我安装了JDK8,现在工作正常!我有版本7更新51根据您是否尝试设置您的类路径正确,然后呢?检查这个链接:刚刚安装JDK8,它现在工作良好!非常感谢你,哈哈