好的,所以我有一个名为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);
}
}
答案 0 :(得分:2)
valueOf
是一个静态方法,它返回您正在寻找的枚举实例。
执行bu.valueOf(sc.next())
时,调用结果不会存储在任何位置,bu
在调用后不会更改其值。
此外,您应该在枚举上静态调用它而不是变量,并相应地分配其结果:
bu = MethodOfCook.valueOf(sc.next());