jing1988ccc jing1988ccc - 5 months ago 30
Java Question

Android coding with switch (String)

I'm developing an android app on eclipse, when I try some code like

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


it give me the following error

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


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.


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(){}
........


thanks!

Answer

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.

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

and

why-cant-i-switch-on-a-string