java - 在 switch-case 中使用枚举值的字符串表示

标签 java enums switch-statement case tostring

为什么不能在 switch case 中将枚举值用作字符串? (或者这有什么问题:)

String argument;
switch (argument) {
    case MyEnum.VALUE1.toString(): // Isn't this equal to "VALUE1" ?
    // something    
break;
    case MyEnum.VALUE2.toString():
    // something else
break;

最佳答案

您只能使用在编译时已知的字符串。编译器无法确定该表达式的结果。

也许你可以试试

String argument = ...
switch(MyEnum.valueOf(argument)) {
   case VALUE1:

   case VALUE2:

关于java - 在 switch-case 中使用枚举值的字符串表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10387329/

相关文章:

java - 有什么方法可以提高 JVM 启动速度?

java - 如何在antlr中同时使用单引号字符串和双引号single?

java - 内联开关语句java?

ios - PrepareForSegue之谜

java - 通过多对多关系将Enum分组到不同条件的有效设计

c# - 无法在开关 block 中使用只读字段的原因是什么?

java - 如何在InternalResourceViewResolver Spring MVC中配置多个文件夹?

java - 使用java在Excel中只读单个单元格

java - 扩展枚举属性

algorithm - 硬编码深度优先搜索结果(或优化?)