Switch(x)中得x可以是哪种数据类型?

jdk1.7之前可以是byte、short、char、int、Byte、Short、Character、Integer、Enum

jdk1.8之后加入了String

实际上只支持int类型:
a>基本类型byte、short、char自动转型为int类型

b>包装类因为Java得自动拆箱机制可以转化为基本类型,再转型为int类型

c>支持String类型是因为switch比较的是String.hashcode的值,它是一个int类型

d>支持Enum类型是因为比较的是Enum的ordinal值(表示枚举值顺序),它也是一个int类型

上一篇:(1)C++基本数据类型(枚举、共用体)


下一篇:枚举enumeration_听韩顺平课笔记