用字符串Java切换案例

时间:2012-01-12 20:51:49

标签: java switch-statement

我在很长一段时间后使用java,发现与其他语言不同,java不支持带字符串的switch case(只有no和enums)。它背后的原因是什么?如果其他语言很容易实现,为什么不用java?

6 个答案:

答案 0 :(得分:12)

此功能在Java 7(今年7月发布)中实现。他们为什么不先前实施呢?由于甲骨文收购了整个Sun,J7确实被推迟了。

最新文档:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

答案 1 :(得分:5)

IMO,Java的设计者很聪明地忽略了对字符串的切换。每次你打开一个字符串(并且,我承认,我有时也会这样做)你应该想:

  1. 为什么我不在这里使用多态?
  2. 至少,我应该使用Enum吗?

答案 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);