如何让用户为集合Enum输入一个值,然后输入基类?

时间:2015-11-09 15:05:20

标签: java enums java.util.scanner

好的,所以我有一个名为MethodOfCook的枚举值,并将其创建为一个名为hi的字段,我在这里尝试做的是允许用户输入MethodOfCook的一个枚举值来定义他们的配方。 如果这是非常基本的,我道歉,但自我开始编码以来仅仅2个月。我哪里错了?感谢。

枚举方法

System.out.println("现在选择一个枚举方法;");

    System.out.println("Remember your values are;");
       Scanner sc = new Scanner(System.in);
       MethodOfCook bu = hi;
               for (MethodOfCook bum : bu.values())
                        System.out.println(bum);

            while(true)

             // read strings from Scanner - display Algorithm value or throw exception

             try

             {

               System.out.print ("Enter value  ");

               System.out.println("Great, your value is" + bu.valueOf(sc.next()));
                Recipe ji = new Recipe(bud, yesName, jman, bu);
                System.out.println(ji);

               }

             catch (IllegalArgumentException m)

               { System.out.println("  Error: " + m);

             }    

           }

1 个答案:

答案 0 :(得分:2)

valueOf是一个静态方法,它返回您正在寻找的枚举实例。

执行bu.valueOf(sc.next())时,调用结果不会存储在任何位置,bu在调用后不会更改其值。

此外,您应该在枚举上静态调用它而不是变量,并相应地分配其结果:

bu = MethodOfCook.valueOf(sc.next());