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());