我正在尝试在Android应用程序中使用switch
语句。此switch
语句正在测试String
的值,然后基于该值更改另一个String的值。
String s1 =“ a”然后字符串s2 =“ 1”
我不断收到错误消息,提示我需要将符合性更改为1.7。完成此操作后,我得到一个错误,提示我需要将符合性更改为1.6。
是否有解决此问题的方法?还是有人可以考虑解决此问题?
Java在switch / case早期的Java 7中不支持String。但是,如果您使用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...
}
使用带有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";
}
当然,请根据您的需求调整条件。
不使用切换大小写,而是将if-else与字符串equals()方法一起使用。它将有助于代码兼容性,因为仅在jdk 1.7及更高版本中才可以使用带字符串的开关。
如果是Maven项目,则需要在pom.xml中添加以下代码。
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>