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