当前位置: 首页 > 知识库问答 >
问题:

如何在switch语句中使用字符串枚举?[副本]

荣轶
2023-03-14
public class TestingGen {

    /**
     * @param args
     */

    public enum Types {

        TYPE1("TYPE1"), TYPE2("TYPE2");

        private String type;

        private Types(String type) {
            this.type = type;
        }

        public String getType() {
            return type;
        }
    }

    public static void main(String[] args) {

        String value = null;
        switch (value) {
        case Types.TYPE1.getType():
            System.out.println("here");
            break;
        case Types.TYPE2.getType():
            System.out.println("there");
        default:
            System.out.println("default");
        }
    }

}

它在两个case语句上都显示错误“case表达式必须是常量表达式”。

那么我如何在swtich语句中使用字符串枚举呢?

共有1个答案

谢清野
2023-03-14

反过来。获取字符串类型的枚举值enumValue=types.valueof(stringValue)并打开枚举值开关(enumValue){case type1:[...]

 类似资料:
  • 我想我还没有在Java中得到的概念。 我尝试将字符串与枚举中的特殊字符相比较。 但话说回来: 我收到一个编译器错误: 我做错了什么?

  • 问题内容: 我正在用Java制作轮盘赌(我自己的版本),而玩家可以打赌的类型之一就是选择将要滚动的颜色。(偶数是黑色,奇数是红色)。有没有一种方法可以使用switch语句将字符串与枚举进行比较? 这就是我想要得到的,但这并不是让我在switch语句中使用枚举“颜色”。 问题答案: 您必须具有要在其上进行切换的枚举类型的实例(其 成员 )。您正在尝试打开Enum类本身,这是没有意义的构造。所以你可能

  • 本文向大家介绍如何在C#中的switch语句中使用字符串,包括了如何在C#中的switch语句中使用字符串的使用技巧和注意事项,需要的朋友参考一下 switch语句允许针对值列表测试变量是否相等。每个值称为大小写,并针对每个开关大小写检查打开的变量。 示例 这是在switch语句中使用字符串的示例- 输出结果 这将产生以下输出-

  • 本文向大家介绍Java语言中枚举能使用switch语句吗?,包括了Java语言中枚举能使用switch语句吗?的使用技巧和注意事项,需要的朋友参考一下 Java中的枚举(enum)是一种存储一组常量值的数据类型。您可以使用枚举来存储固定值,例如一周中的天,一年中的月等。 您还可以使用自定义值定义一个枚举来声明常量。但是您需要一个实例变量,一个构造函数和一个getter方法来返回值。 与switch

  • 我有两种枚举类型(并希望用户能够添加自己的)。 如果我不在接受枚举类型的方法中使用枚举属性,这就很好。 但是,如果我希望模板E被识别为一个枚举(在这里的开关中使用),我会得到错误“不能打开类型E的值”(在Eclipse中,开关(E)中的“E”带有红色下划线) 我对擦除有一点了解,它在编译时擦除了关于模板的所有信息,所以这就是问题所在。但是我尝试传入clazz类或者实现一个接口都没有成功。对此有什么