gpt4 book ai didi

java - switch语句的每种情况的值有什么限制

转载 作者:行者123 更新时间:2023-11-30 08:13:37 25 4
gpt4 key购买 nike

对于这个问题,我看到了类似的答案在编译期间,switch 语句的每种情况的值必须评估为可以提升为 int 值的值,但我不明白为什么因为我们也使用 byte、short、int、char 但这个语句只说 int 所以请解释一下并给我一个例子

最佳答案

Java 5 中引入了枚举类型,同时增强了 switch 语句以允许切换 enum 值。

这使得引用的语句无效:

"[d]uring compilation, the values of each case of a switch statement must evaluate to a value that can be promoted to an int value"

...除非它指的是 Java 1.4.x 或更早版本。

它的意思是 case 值必须是 byteshortcharint。 (这些是唯一其值可以是在 Java 5 之前提升为 int ...。Java 5 中也引入了包装类型的拆箱。)

当然,在 Java 5 中不再如此。在 Java 5 及更高版本中,常量可以是 enum 值,在 Java 7 及更高版本中它们也可以是 String 值(取决于选择器表达式的类型)。

另一个需要注意的是,您应该阅读 JLS 的相关版本来获取明确的信息……而不是依赖于某些 StackOverflow 问题。在这种情况下,JLS将限制表达得更简单、更直接。

引用:

(我找不到 Java 5 JLS 的公共(public)副本来链接到...)

关于java - switch语句的每种情况的值有什么限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29988831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com