jin*_*ccc 38 java string android switch-statement
我在eclipse上开发一个Android应用程序,当我尝试一些类似的代码
switch(String){
......
}
Run Code Online (Sandbox Code Playgroud)
它给我以下错误
Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum variables are permitted
Run Code Online (Sandbox Code Playgroud)
所以我将编译器更改为1.7,然后它给了我另一个错误
Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.
Run Code Online (Sandbox Code Playgroud)
那么,有没有让switch(String)在Android应用程序中工作?或者我别无选择只能使用
if(){}
else if(){}
else if(){}
........
Run Code Online (Sandbox Code Playgroud)
Rya*_*ner 94
随着API 19 KitKat的发布,你现在可以做到这一点!这是android studio对现有项目所需的更改.确保您使用的是JDK 1.7或更高版本以及Gradle插件0.6.1或更高版本
Run Code Online (Sandbox Code Playgroud)android { compileSdkVersion 19 buildToolsVersion "19.0.0" defaultConfig { minSdkVersion 7 targetSdkVersion 19 } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } }
Ada*_*der 37
switchString对象语句是Java 1.7中引入的一个新特性.不幸的是,Android需要1.6或1.5版本.这就是为什么你不得不忘记一些这样的结构.
您可以通过存储将要执行的方法映射来避免使用if-statements-chain String: Map<String, Method>. 您始终Method可以使用某个Handler对象封装它.在这里查看更多信息:如何删除大型if-else-if链
和
您可以使用最新的Android构建工具执行此操作.自API 19起,Android开始支持Java 7功能.
最好的部分是即使你将minSdkVersion设置为低于19它也能工作.引用这个android开发者页面:
请注意,除了尝试使用资源之外,您可以将minSdkVersion的值设置为早于19的所有语言功能.如果你想使用try with resources,你还需要使用19的minSdkVersion.
| 归档时间: |
|
| 查看次数: |
46024 次 |
| 最近记录: |