在java switch中使用String作为分支条件 (转)
程序员文章站
2022-07-12 18:37:31
...
在java中明确规定switch里面只允许使用int,char,byte,short,和enum类型,但是我们实际编程过程中往往需要通过String来进行比较。那么应该怎么做呢?其实很简单,我们只需要将enum类型做一个小小的封装就可以达到我们的目的
Animal enum类:
- public enum Animal {
- dog,cat,bear;
- public static Animal getAnimal(String animal){
- return valueOf(animal.toLowerCase());
- }
- }
public enum Animal { dog,cat,bear; public static Animal getAnimal(String animal){ return valueOf(animal.toLowerCase()); } }
Client 调用:
- 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");
- }
- }
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"); } }
看,是不是很简单啊。希望对大家写程序过程中有所帮助
上一篇: mac下使用JITWatch查看JDK1.8汇编代码
下一篇: logback log4j 冲突