Switch语句在android项目中不起作用

时间:2013-07-19 12:56:57

标签: android

我是Android Dev的初学者。我刚刚在字符串上使用switch case语句遇到了这个问题:

String str = "Hello";
switch (str) {
    case "Hello":
       System.out.println("case 1");break;
    default:
       System.out.println("default");break;
}

Eclispse Logs:

Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum variables are permitted Home.java

所以我要去Project项目 - > Java Compiler和我将JDK设置为1.7并应用它。但是现在eclipse会让我修复属于第一个问题的属性......

Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.

如何修复它以使用我的开关盒?

由于

4 个答案:

答案 0 :(得分:4)

您需要在switch语句中传递数值或字符值。 实施例

char str = 'A';
switch (str) {
    case 'A':
       System.out.println("case 1");break;
    default:
       System.out.println("default");break;
}

答案 1 :(得分:1)

是Java 1.7中引入了具有String类的switch语句。但Android使用1.6抱歉。检查文档以了解可以使用的类型。我不知道这种情况,但Enums和switch语句工作得很好

答案 2 :(得分:0)

在eclipse属性中将编译器版本降低到1.6。 Android尚不支持1.7版本。

enter image description here

答案 3 :(得分:0)

要在开关中明确表示案例,您可以使用枚举

public enum helloEnum {
    HELLO, HOLA, CIAO
}


public class EnumTest {
    helloEnum mHello;

    public EnumTest(helloEnum mHello) {
        this.mHello = mHello;
    }

    public void sayHello() {
        switch (mHello) {
            case HELLO:
                System.out.println("hello");
                break;

            case HOLA:
                System.out.println("hola");
                break;

            case CIAO
                System.out.println("ciao");
                break;

            default:
                System.out.println("hello");
                break;
        }
    }
}