在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");????
- ????}????
- } ?