为什么switch不支持long

首先最核心的原因:Java 设计 switch 时,底层是基于 int 类型实现的

  • switch 的字节码指令(比如 lookupswitch/tableswitch)只认 int 类型,所有能进 switch 的类型(byte/short/char/String),最终都会转成 int 处理;
  • long 是 64 位,取值范围远大于 int(32 位),没法无损转成 int,所以直接不支持。

其次是设计层面:就算硬要支持 long,也会大幅增加 JVM 实现复杂度,而实际开发中用 long 做 switch 判断的场景极少,性价比太低。

总结:

  1. switch 底层依赖 int 指令实现,long 无法转 int;
  2. 场景少+实现成本高,没必要支持。
相关推荐
事圆则缓3 分钟前
Java I/O、文件与 Android 存储
java
wno7049 分钟前
Spring Security基础使用
java·后端·spring
小蒜学长1 小时前
基于RFID技术的仓储管理系统设计(代码+数据库+LW)
java·数据库·spring boot·后端·rfid技术·仓储管理
梦影_1 小时前
Langchain简单快速上手教程(五)——聊天模型之流式传输
java·数据库·人工智能·python·langchain
数据狐(Datafox)1 小时前
1688商品列表API接口解析(附 JSON 样例)
java·开发语言·数据库·爬虫·json
xcl09251 小时前
健身场馆无人自动化系统:从架构设计到落地实践
java·spring boot
EatFan1 小时前
一个二维码背后的系统设计:批次生成、绑定、扫码与数据统计怎么做?
java·后端·微信小程序·二维码·qrcode
白远山1 小时前
自助健身小程序源码:架构拆解、核心链路与本地部署实战
java·架构·uni-app·需求分析
Lyyaoo.2 小时前
【动态规划】【待更新】
java·数据结构·算法
我不会起名字3222 小时前
一天一道算法题(35):电话号码的字母组合
java·数据结构·后端·python·leetcode·go·回溯