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是最新版本。
答案 0 :(得分:1)
您的Java版本是什么?关于字符串的switch语句只在Java 7中开始。
否则你将不得不使用旧的if条件:
String text = sc.next()
if(text.equals("abc")) {
output = 0;
} else if (text.equals("bcd")) {
output = 1;
}
答案 1 :(得分:0)
您只能在Java7中执行此操作,如here所示,您的另一种选择是使用if
语句。如果您想查看正在运行的Java版本,请在控制台中键入java -v
或java --version
,以便为您提供版本。
答案 2 :(得分:0)
在JDK 7中,我们可以在switch中使用String比较。在早期的java版本中(6,4,...)。我们不能在switch语句中使用String。