Java 如何将用户在对话框(JOptionPane)中键入的字符串转换为枚举?
我有一个性别的枚举Java 如何将用户在对话框(JOptionPane)中键入的字符串转换为枚举?,java,string,enums,Java,String,Enums,我有一个性别的枚举 public enum Gender { Male("M"), Female("F"); private String value; Gender(String value){ this.value = value; } public String getValue() { return value; } } 这个枚举是我的类的构造函数 class People { private String name; p
public enum Gender {
Male("M"), Female("F");
private String value;
Gender(String value){
this.value = value;
}
public String getValue() {
return value;
}
}
这个枚举是我的类的构造函数
class People {
private String name;
private int id;
private int age;
private Gender x;
}
然后我尝试从用户创建这个类的一个新对象,一个用户输入一个名字、id、年龄和性别。我正在使用对话框JOptionPane。
我得到一个错误的线路是这条
public class AppPeople {
public static void main(String[] args) {
Gender gender1; //I tried declaring String gender1
//To get the answer/input below, but didn't work.
gender1 = JOptionPane.showInputDialog(null, "Type Male or Female");
People p1 = new People(name, id, age, Gender1);
}
}
所有其他字段都在对话框中工作,包括姓名、id和年龄。这个枚举不起作用。我必须声明id和年龄字符串才能在对话框中使用它,所以我将答案输入字符串变量并将其转换为整数,以匹配类的构造函数。我试图声明一个新字符串以从对话框中获取输入,并将其转换为enum,但仍然不起作用。剩下的唯一字段是将字符串转换为枚举的字段。是否有人知道我可以做些什么来修复或可能是一个新的解决方案。只需使用每个枚举的方法即可
Gender.valueOf("yourString")
仅使用每个枚举的se方法
Gender.valueOf("yourString")
你可以用
gender1 = Gender.valueOf(JOptionPane.showInputDialog(null, "Type Male or Female").toUpperCase());
你可以用
gender1 = Gender.valueOf(JOptionPane.showInputDialog(null, "Type Male or Female").toUpperCase());