使用switch语句将字符串与枚举进行比较

我正在用Java制作轮盘赌(我自己的版本),而玩家可以打赌的类型之一就是选择将要滚动的颜色。(偶数是黑色,奇数是红色)。有没有一种方法可以使用switch语句将字符串与枚举进行比较?

private enum colors{red, black};

private String colorGuess;

private boolean colorVerify = false;

public void getColorGuess(){

do{

Scanner in = new Scanner(System.in);

colorGuess = in.nextLine();

switch(colors){

case red:

colorVerify = true;

break;

case black:

colorVerify = true;

break;

default:

System.out.println("Invalid color selection!");

break;

}while(colorVerify = false);

这就是我想要得到的,但这并不是让我在switch语句中使用枚举“颜色”。

回答:

您必须具有要在其上进行切换的枚举类型的实例(其 成员 )。您正在尝试打开Enum类本身,这是没有意义的构造。所以你可能需要

colors col = colors.valueOf(colorGuess);

switch (col) ...

顺便说一句,名称应为Colors,不colors尊重非常重要且非可选的Java命名约定。

以上是 使用switch语句将字符串与枚举进行比较 的全部内容, 来源链接: utcz.com/qa/407055.html

回到顶部