Для этого вам нужно определить конструктор и переменную String
.Затем вы можете создать метод получения, возвращающий переменную String
:
public enum Status {
JOHN("single"),
ALEX("married"),
MARTHA("not known");
private String value;
private Status(String str) {
value = str;
}
public String getValue() {
return this.value;
}
}
И затем получить значение, которое вы можете сделать:
Status.JOHN.getValue()
Чтобы получить перечисление из String
Вы можете использовать метод valueOf()
:
Status.valueOf("JOHN").getValue();
Однако это приведет к ошибке, если введенный String
не соответствует перечислению.Вы можете либо обернуть его в try-catch, чтобы назначить ему значение по умолчанию:
try {
Status.valueOf("JOHN").getValue();
} catch(IllegalArgumentException e) {
//Assign default
}
Однако лучше было бы поместить варианты в HashMap
и посмотреть, является ли введенный String
в HashMap
:
Map<String, Status> status = new HashMap<>();
status.put("JOHN", Y.JOHN);
if(status.containsKey(input)) {
//Do stuff
} else {
//Assign default
}