gpt4 book ai didi

java - 通过继承访问枚举类型以创建对象

转载 作者:行者123 更新时间:2023-12-01 11:41:37 25 4
gpt4 key购买 nike

我的任务是使用我们创建的一个旧实验室来包装一个 GUI,足够简单。我可以毫无问题地创建 GUI 或继承变量来创建不同的对象,但一个对象需要在其参数中使用 Enum 类型,并且尽管编译器没有提示,但我似乎很难将枚举类型分配给对象,所以也许你们可以帮助我。

包含枚举类的管理器类:

public enum Department {

PAYROLL, PRODUCTION, ACCOUNTING, RESEARCH, MARKETING;

public static Department getRandomDepartment() {
Department[] d = Department.values();
int size = Department.values().length;

return d[r.nextInt(size)];
}
};

有一个可以使用的更改器(mutator)方法 setDepartment,但我不知道如何实例化它。

public void setDepartment(Department d) {
department = d;
}

这是我的 GUI 类中的添加管理器方法:

if(command.equals("Add Manager")){
m_name = inputName.getText();
m_num = inputNum.getText();
m_year = Integer.parseInt(inputHire.getText());
m_yearlyPay = Double.parseDouble(inputYearly.getText());


if(inputDepartment.equals("Payroll") || inputDepartment.equals("payroll")){

Manager temp = new Manager(m_name,m_num,m_year,m_yearlyPay,Manager.Department.PAYROLL);
System.out.println(temp);
}
if(inputDepartment.equals("Production") || inputDepartment.equals("production")){
Manager temp = new Manager(m_name,m_num,m_year,m_yearlyPay,Manager.Department.PRODUCTION);
System.out.println(temp);
}
if(inputDepartment.equals("Accounting") || inputDepartment.equals("accounting")){
Manager temp = new Manager(m_name,m_num,m_year,m_yearlyPay,Manager.Department.ACCOUNTING);
System.out.println(temp);
}
if(inputDepartment.equals("Research") || inputDepartment.equals("research")){
Manager temp = new Manager(m_name,m_num,m_year,m_yearlyPay,Manager.Department.RESEARCH);
System.out.println(temp);
}
if(inputDepartment.equals("Marketing") || inputDepartment.equals("marketing")){
Manager temp = new Manager(m_name,m_num,m_year,m_yearlyPay,Manager.Department.MARKETING);
System.out.println(temp);
}



}

我的方法显然有问题,因为当我通过 GUI 输入部门时,它无法识别我添加的部门,对下一步应该做什么有什么想法吗?

最佳答案

枚举总是提供一个 valueOf(String) 静态工厂,我认为它可以帮助你。

Manager.Department.valueOf("PAYROLL") 将返回 Manager.Department.PAYROLL

关于java - 通过继承访问枚举类型以创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29475730/

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