问题描述
当我尝试一些代码时,我正在 Eclipse 上开发一个 android 应用程序
I'm developing an android app on eclipse, when I try some code like
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,然后它又给了我一个错误
so I changed the compiler to 1.7, then it give me another error
Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.
那么,有没有办法让 switch(String) 在 android 应用程序中工作?或者我别无选择,只能使用
So, is there anyway to let switch(String) works in android application? or I have no choice but to use
if(){} else if(){} else if(){} ........
推荐答案
switch 关于String 对象的语句是Java 1.7 中引入的一个新特性.不幸的是,Android 需要 1.6 或 1.5 版本.这就是为什么你必须在一段时间内忘记这种结构.
switch statement on String objects is a new feature introduced in Java 1.7. Unfortunatelly Android requires version 1.6 or 1.5. This is why you have to forget for some time about such constructions.
您可以通过存储将为某些 String 执行的方法映射来避免使用 if-statements-chain:Map
You can avoid using if-statements-chain by storing the map of methods which will be executed for certain String: Map<String, Method>. You can always encapsulate Method it with some Handler object. Look here for more info: How to remove large if-else-if chain
和
why-cant-i-switch-on-a-string