Java switch表达式支持的数据类型
这里的 expression 支持:
1、基本数据类型:byte, short, char, int
2、包装数据类型:Byte, Short, Character, Integer
3、枚举类型:Enum
4、 字符串类型:String(Jdk 7+ 开始支持)
为什么不支持long、float、double数据类型?
switch 底层是使用 int 型 来进行判断的,即使是枚举、String类型,最终也是转变成 int 型。由于 long、float、double 型表示范围大于 int 型,因此不支持 long、float、double 类型。 (String类型最终是转成了int类型的hashCode;枚举最终转成了枚举对象的定义顺序,即 ordinal值)
下面举一个使用包装类型和枚举的,其实也不难,注意只能用在 switch 块里面
最后更新于