switch expression can#39;t be float, double or boolean(开关表达式不能是浮点型、双精度型或布尔型)
问题描述
为什么 switch
表达式不允许 long
、float
、double
或 boolean
Java 中的值?为什么只允许int
(以及那些自动提升为int
的)?
Why doesn't the switch
expression allow long
, float
, double
or boolean
values in Java? why is only int
(and those that are automatoically promoted to int
) allowed?
推荐答案
即使可能,Float 和 double 也很难可靠地使用 - 不要忘记在 float/double 上执行完全相等匹配通常是个坏主意无论如何,由于表示的性质.
Float and double would be awkward to use reliably even if they were possible - don't forget that performing exact equality matches on float/double is usually a bad idea anyway, due to the nature of the representation.
对于布尔值,为什么不直接使用 if
开头?
For Boolean values, why not just use if
to start with?
老实说,我不记得曾经想要打开这些类型中的任何一种.您有特定的用例吗?
I can't remember ever wanting to switch on any of these types, to be honest. Do you have a particular use case in mind?
这篇关于开关表达式不能是浮点型、双精度型或布尔型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:开关表达式不能是浮点型、双精度型或布尔型


基础教程推荐
- Java:带有char数组的println给出乱码 2022-01-01
- 降序排序:Java Map 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01