gpt4 book ai didi

java - 将 int 类型转换为 enum 类型

转载 作者:行者123 更新时间:2023-12-02 02:09:44 26 4
gpt4 key购买 nike

您好,我正在处理的项目似乎遇到了问题。我创建了一个名为 Shift 的枚举类型,用于早餐午餐晚餐 Swing ),然后我有一个有 4 个案例的开关来选择它是哪一个。

但是,当我尝试在没有任何用户输入的情况下创建对象并将值设置为 1-4 之间的随机数时,会出现一条消息,显示“不兼容的类型:int 无法转换为 Shift”

如有任何帮助,我们将不胜感激!

编辑*我目前有这个

private void getShiftAsInput()

{

Scanner cin = new Scanner(System.in);
System.out.print(" Please enter " + getName()
+ "'s Shift by Number:\n"
+ "1. Breakfast\n"
+ "2. Lunch\n"
+ "3. Dinner\n"
+ "4. Swing ========> ");
String inShift = cin.nextLine();
switch(inShift){
case "1": shift = Shift.breakfast; break;
case "2": shift = Shift.lunch; break;
case "3": shift = Shift.dinner; break;
case "4": shift = Shift.swing; break;
default: getShiftAsInput(); break;
}
}

public enum Shift { breakfast, lunch, dinner, swing }

在主类(class)中我试图这样做:

   RestaurantWorker[] arr;
arr = new RestaurantWorker[6];

arr[0] = new Manager();
arr[1] = new Manager("John Edelman", "8521100900", 3, 10, 1000, 40000);
arr[2] = new WaitStaff();
arr[3] = new WaitStaff("Kelsey Green", "5662902901", 3, 36, 10.25, 40, 10, 2 );
arr[4] = new KitchenStaff();
arr[5] = new KitchenStaff("Jeff Brown", "8596042909", 2, 30, 10, 30, 0);

但是电话号码后面的参数出现错误。

最佳答案

这就是你的代码应该是这样的,类型不匹配是因为你必须将 ENUM 传递到 switch case 中。

public class Practise {
static enum SHIFT {
BREAKFAST, LUNCH, DINNER
}

public static void main(String[] args) {
SHIFT key = SHIFT.BREAKFAST; // hardcoded for example, but can be dynamic
switch (key) {
case BREAKFAST:

break;

default:
break;
}
}

}

生成随机整数值时,您可以更改逻辑以将 ENUM 值分配给变量。类似这样的东西,

SHIFT key = SHIFT.values()[getRandomIndex()];

关于java - 将 int 类型转换为 enum 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50192383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com