使用开关(字符串)进行安卓编码

2022-09-01 04:03:44

我正在eclipse上开发一个Android应用程序,当我尝试一些代码时,比如

switch(String){
 ......
}

它给我以下错误

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

所以我把编译器改成了1.7,然后它给了我另一个错误

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

那么,有没有办法让switch(String)在Android应用程序中工作?或者我别无选择,只能使用

if(){}
else if(){}
else if(){}
........

答案 1

随着API 19 KitKat的发布,您现在可以做到这一点!!!!这是Android Studio对现有项目所需的更改。确保您使用的是 JDK 1.7 或更高版本以及 Gradle 插件 0.6.1 或更高版本

android {
compileSdkVersion 19
buildToolsVersion "19.0.0"

defaultConfig {
    minSdkVersion 7
    targetSdkVersion 19
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
} }

答案 2

switch语句 on objects 是 Java 1.7 中引入的一项新功能。不幸的是,Android需要1.6或1.5版本。这就是为什么你必须忘记一段时间这样的结构。String

您可以通过存储将针对某些方法执行的方法映射来避免使用if语句链:。您始终可以用某些对象封装它。在此处查找详细信息:如何删除大型 if-else-if 链StringMap<String, Method>MethodHandler

为什么不能在弦上切换