我在很长一段时间后使用java,发现与其他语言不同,java不支持带字符串的switch case(只有no和enums)。它背后的原因是什么?如果其他语言很容易实现,为什么不用java?
答案 0 :(得分:12)
此功能在Java 7(今年7月发布)中实现。他们为什么不先前实施呢?由于甲骨文收购了整个Sun,J7确实被推迟了。
最新文档:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html
答案 1 :(得分:5)
IMO,Java的设计者很聪明地忽略了对字符串的切换。每次你打开一个字符串(并且,我承认,我有时也会这样做)你应该想:
答案 2 :(得分:2)
从Java 7开始,您可以在switch语句中使用字符串。
答案 3 :(得分:2)
从java 7开始,你可以使用带有字符串的switch case。 见:java switch case
答案 4 :(得分:0)
新的Java版本(JDK 7)需要很长时间才能发布。这就是为什么你可能无法知道...... 以下是如何在switch case中使用字符串的示例...
option = scanner.nextLine();
switch (option) {
case "1": System.out.println("Hello");break;
case "2": break;
case "3": break;
case "4": break;
case "5": break;
default: System.out.println("Invalid option. Please try again..."); break;
}
答案 5 :(得分:0)
不是很漂亮,但这是Java 6和下面的另一种方式:
String runFct =
queryType.equals("eq") ? "method1":
queryType.equals("L_L")? "method2":
queryType.equals("L_R")? "method3":
queryType.equals("L_LR")? "method4":
"method5";
Method m = this.getClass().getMethod(runFct);
m.invoke(queryField);