我是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.
如何修复它以使用我的开关盒?
由于
答案 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版本。
答案 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;
}
}
}