switch语句支持byte、short、int、char及对应包装类,Java 5起支持enum,Java 7起支持String;不支持long、float、double、boolean及复杂类型。

在Java中,switch语句支持的数据类型有一定的限制,不是所有类型都可以使用。根据Java语言规范,switch语句的表达式必须是以下几种类型之一:
1. 基本数据类型
switch语句直接支持以下基本数据类型:- byte
- short
- int
- char
2. 包装类型
Java也支持对应的包装类,前提是它们表示的是上述基本类型的值:- Byte
- Short
- Integer
- Character
3. 枚举类型(enum)
从Java 5开始,switch语句支持枚举类型:- 可以对enum类型的变量进行switch操作
- case标签必须是该枚举的常量
4. String类型
从Java 7开始,switch语句增加了对String的支持:- 允许使用String变量作为switch表达式
- 内部通过equals()和hashCode()实现,保证效率
- 注意:null值会导致运行时抛出NullPointerException
不支持的类型
以下类型不能用于switch语句:- long、float、double(即使转为int也不行)
- boolean
- 数组、集合、自定义对象等复杂类型
基本上就这些。选择合适的数据类型能让switch语句更清晰高效。注意版本差异,特别是String只在Java 7及以上可用。










