我正在尝试在Android应用中使用switch
语句。这个switch
语句正在测试String
的值,然后根据更改另一个String的值。
String s1 =“a” 然后 字符串s2 =“1”
我不断收到错误消息,说我需要将合规性更改为1.7。在我这样做之后,我得到一个错误,说我需要将合规性更改为1.6。
有没有办法解决这个问题?或者任何人都可以想到解决这个问题?
答案 0 :(得分:6)
Java不支持早期java 7中的字符串中的字符串。但是如果使用java 6,则可以通过使用枚举来实现所需的结果。
private enum Fruit {
apple, carrot, mango, orange;
}
String value; // assume input
Fruit fruit = Fruit.valueOf(value); // surround with try/catch
switch(fruit) {
case apple:
method1;
break;
case carrot:
method2;
break;
// etc...
}
答案 1 :(得分:1)
使用与equals()的字符串比较而不是在字符串上打开(在Java 7中可用)可能如下所示:
//as an example, if s2 equals 'b'
String s2 = "b";
//this uses String's equals() method
if (s1.equals("a")) then {
s2 = "1";
}
else if (s1.equals("b")) then {
s2 = "2";
}
else {
s2 = "3";
}
当然,根据您的需要调整条件。
答案 2 :(得分:0)
不要使用switch case,而是使用if-else和string equals()方法。它将有助于代码兼容性,因为带字符串的开关仅适用于jdk 1.7 +。
答案 3 :(得分:0)
如果是maven项目,则需要在pom.xml中添加以下代码。
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>