在java中明确规定switch里面只允许使用int,char,和enum类型,但是我们实际编程过程中往往需要通过String来进行比较。那么应该怎么做呢?其实很简单,我们只需要将enum类型做一个小小的封装就可以达到我们的目的
Animal enum类:
1 public enum Animal { 2 dog,cat,bear; 3 4 public static Animal getAnimal(String animal){ 5 return valueOf(animal.toLowerCase()); 6 } 7 }
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"); } }