【问题标题】:Convert String to Enum? [duplicate]将字符串转换为枚举? [复制]
【发布时间】:2012-01-03 01:06:34
【问题描述】:

可能重复:
Java - Convert String to enum

我有一个使用枚举的方法:

mymethod(AnotherClass.MyEnum.PassedEnum);

我想将它嵌套在一个接收字符串的类中,该字符串变成 MyEnum:

public static void method(String toPass){

 mymethod(AnotherClass.toPass.PassedEnum);

}

传递的变量必须是字符串,但我需要将其转换为枚举以传递给 AnotherClass?

TIA

【问题讨论】:

  • 感谢大家所需要的。

标签: java


【解决方案1】:

你的意思是...

MyEnum e = MyEnum.valueOf(text);

MyEnum e = Enum.valueOf(MyEnum.class, text);

【讨论】:

    【解决方案2】:

    我认为静态工厂方法Enum.valueOf() 可以满足您的需求。

    【讨论】:

      【解决方案3】:

      尝试在 method 的正文中执行此操作:

      AnotherClass.toPass.PassedEnum.valueOf(toPass);
      

      【讨论】:

        【解决方案4】:

        您可以使用Enum.valueOf(Class<...>, String) 将字符串转换为对应的枚举实例:

        MyEnum value = Enum.valueOf(MyEnum.class, "ENUM_VALUE");
        

        如果字符串包含不作为枚举常量存在的值,则此方法抛出IllegalArgumentException

        【讨论】:

          【解决方案5】:
          public static void method(String toPass){
          
           mymethod(AnotherClass.MyEnum.valueOf(toPass));
          
          }
          

          【讨论】:

            【解决方案6】:

            使用AnotherClass.MyEnum.valueOf(toPass)

            【讨论】:

              【解决方案7】:

              您可以使用静态方法Enum.valueOf 将字符串转换为枚举值:

              public static void method(String toPass)
              {
                  AnotherClass.MyEnum eval = Enum.valueOf(AnotherClass.MyEnum.class,toPass);
                  mymethod(eval);
              }
              

              【讨论】:

                猜你喜欢
                • 2012-12-07
                • 1970-01-01
                • 2010-10-03
                • 1970-01-01
                • 2019-02-21
                • 1970-01-01
                相关资源
                最近更新 更多