昨天面试问了一个java的基础问题:switch中参数类型可以有哪些?
平时虽然有用过,但真没怎么注意switch中参数的类型。然后就随便蒙了一个答案,答对了。今天就对switch分析一下。在jdk1.7版本以前,参数类型只能是short、byte、int、char可正常运行。而例如String,Long、Integer、double、float等则会报错。
而jdk1.7版本以后,参数类型除了之前可使用的外,String、Integer类、 Character类、枚举类型都可以正常运行。而Long、double、float依旧会报错。
public class SwitchTest {
public static void main(String[] args) {
String str = "abcd";
/*
* 可执行不报错
* Integer in = 12; int ii = 12; short sh = (short)12; char ch = 'c';
* byte by =(byte)12;
*/
/*
* 会报错
* double dou = 0.12; long lo = 123L;float fl = 0.12f;
*/
switch (str) {
case "abcd":
System.out.println("String正确");
break;
case "idfd":
System.out.println("idfd正确");
break;
default:
System.out.println("错误");
break;
}
}
}