在Java7之前,switch只能支持 byte、short、char、int或者其对应的封装类以及Enum类型。
Java7可以使用String作为判断条件
- public class Test {
- public void test(String str) {
- switch(str) {
- case "abc":
- System.out.println("abc");
- break;
- case "def":
- System.out.println("def");
- break;
- default:
- System.out.println("default");
- }
- }
Java7之前如果要使用String作为判断条件可以通过Enum来实现
- public enum Animal {
- dog, cat, bear;
- public static Animal getAnimal(String animal) {
- return valueOf(animal.toLowerCase());
- }
- }
- public class Client {
- public void caseAnimal(String animal){
- switch(Animal.getAnimal(animal)){
- case cat:
- System.out.println("this is a cat");
- break;
- case dog:
- System.out.println("this is a dog");
- break;
- case bear:
- System.out.println("this is a bear");
- break;
- }
- }
- /**
- * @param args
- */
- public static void main(String[] args) {
- Client client = new Client();
- client.caseAnimal("cat");
- }
- }