Java中switch支持的类型随版本扩展,早期支持byte、short、int、char及其包装类,Java5新增enum,Java7开始支持String,但不支持long、float、double、boolean及对象类型。

Java中的switch语句支持的类型有一定的限制,主要取决于Java版本。从Java的不同版本演进来看,支持的类型逐步扩展。
基本数据类型及其包装类
支持的类型包括:
- byte 和 Byte
- short 和 Short
- int 和 Integer
- char 和 Character
这些是早期Java版本就支持的类型,因为它们都能转换为整数形式。
String 类型
从 Java 7 开始,switch 语句支持 String 类型。
立即学习“Java免费学习笔记(深入)”;
使用字符串时,注意避免 null 值,否则会抛出 NullPointerException。
示例:
String day = "Monday";
switch (day) {
case "Monday":
System.out.println("工作日");
break;
case "Sunday":
System.out.println("休息日");
break;
default:
System.out.println("其他");
}
枚举类型(enum)
从 Java 5 开始,switch 支持枚举类型。
使用枚举可以让代码更清晰、安全。
示例:
enum Day { MONDAY, TUESDAY, WEEKEND }
Day today = Day.MONDAY;
switch (today) {
case MONDAY:
System.out.println("星期一");
break;
case WEEKEND:
System.out.println("周末");
break;
}
不支持的类型
以下类型不能用于 switch:
- long、float、double 及其包装类
- 数组、对象(除 String 和 enum 外)
- boolean 和 Boolean
尤其是 long,虽然它是整型,但由于可能溢出问题,未被纳入支持范围。
基本上就这些。选择合适的类型能让 switch 更高效、可读性更强。注意版本兼容性,特别是使用 String 时要确保运行环境是 Java 7 或更高。










