Java switch语句支持类型范围的技术问询
Java switch语句支持类型范围的技术问询
嘿,我来给你掰扯清楚Java里switch语句的类型支持情况哈!
首先先回顾下JDK 7带来的变化:JDK 7 给switch语句新增了对String类型的支持,这直接扩展了switch原本能处理的类型范围。到Java 7及之后的版本,switch可以支持的类型包括:
- 基本数据类型:
byte、short、char、int - 对应的包装器类型:
Byte、Short、Character、Integer - 枚举类型(enum)
String类型
回到你的问题:除了上面列的这些类型,switch还支持其他对象类型吗?
答案是不行哦。不管是像Long、Float这类其他包装器类型,还是你自己定义的普通对象类,都没法直接放到switch语句里作为判断条件。Java的switch语句底层依赖整数匹配的机制(比如String也是通过哈希值转成整数逻辑处理的),所以一直保持着这个类型限制,没法兼容更多的对象类型。
备注:内容来源于stack exchange,提问作者Arvind Kumar Avinash
相关产品推荐
相关产品推荐

