为什么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. 场景少+实现成本高,没必要支持。
相关推荐
YikNjy8 分钟前
string(c++)
java·服务器·c++
小江的记录本30 分钟前
【Spring AI】Spring AI中RAG误触发与系统提示词泄露问题解决方案(完整版+代码方案)
java·人工智能·spring boot·后端·python·spring·面试
勇往直前plus37 分钟前
Python 属性访问与操作全解析:内置函数、魔法方法与描述符深度指南
java·网络·python
Arenaschi43 分钟前
关于GPT的版特点
java·网络·人工智能·windows·python·gpt
人道领域43 分钟前
【LeetCode刷题日记】108.将有序数组转换为二叉搜索树
java·算法·leetcode
橙淮1 小时前
并发编程(五)
java
过期动态1 小时前
【LeetCode 热题 100】无重复字符的最长子串
java·数据结构·spring boot·算法·leetcode·职场和发展
Yeats_Liao1 小时前
好复杂的 IoT 世界:工业数据采集技术栈全景解析
java·物联网·struts
月落归舟1 小时前
Java线程小记
java·开发语言
西凉的悲伤1 小时前
Spring Cloud Gateway介绍
java·spring cloud·gateway