Using string representations of enum values in switch-case(在 switch-case 中使用枚举值的字符串表示)
问题描述
为什么不能在 switch case 中使用枚举值作为字符串?(或者这有什么问题:)
Why is it not possible to use enum values as strings in a switch case? (Or what is wrong with this:)
String argument;
switch (argument) {
case MyEnum.VALUE1.toString(): // Isn't this equal to "VALUE1" ?
// something
break;
case MyEnum.VALUE2.toString():
// something else
break;
推荐答案
只能使用编译时已知的字符串.编译器无法确定该表达式的结果.
You can only use strings which are known at compile time. The compiler cannot determine the result of that expression.
也许你可以试试
String argument = ...
switch(MyEnum.valueOf(argument)) {
case VALUE1:
case VALUE2:
这篇关于在 switch-case 中使用枚举值的字符串表示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 switch-case 中使用枚举值的字符串表示


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