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类型