Switch(条件){}
这个条件位置为什么不能放long类型的语句?
11条回答 默认 最新
- 战在春秋 2017-08-16 21:49关注
简单的回答是因为语法的规定。
在实际编程中,极少有如此多的分支,以致需要使用Long类型。这样的语法规定是语言设计者的折衷考虑,并不一定特别合理,语言规范也在不停演变。
但截止目前的版本,Java的Swithch分支仍然不支持Long,在这种情况下,可以采取一些办法:1 转为int类型,范例如下:
final long value = System.currentTimeMillis() % 5; switch ( (new Long(value)).intValue() ) //注意这行 { case 1 : System.err.println("One"); break; case 2 : System.err.println("Two"); break;
2 放弃switch,改用 if/else 的写法。
3 放弃switch,改用 Map。补充:语言的底层实现细节有时还真不完全清楚,Java新版本中Switch添加了对String的支持,如果要支持Long,也没问题。
谁知道他们是怎么想的^_^,作为语言的使用者,遵守规则即可。如果对您有帮助,请采纳答案好吗,谢谢!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 对于相关问题的求解与代码
- ¥15 ubuntu子系统密码忘记
- ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料
- ¥15 使用R语言marginaleffects包进行边际效应图绘制