Я не думаю, что вы можете сделать это автоматически. Для этого вам нужно будет создать метод stati c:
public static Status fromString(String string) {
for (Status status : values()) {
if (status.statusStr.equals(string)) {
return status;
}
}
throw new IllegalArgumentException(string);
}
С учетом предложений @ Pshemo, код также может быть:
@RequiredArgsConstructor @Getter
public enum Status {
CREATED("created"), IN_PROGRESS("inProgress"), COMPLETED("completed");
private static final Map<String, Status> MAP = Arrays.stream(Status.values())
.collect(Collectors.toMap(Status::getStatusStr, Function.identity()));
private final String statusStr;
public static Status fromString(String string) {
return Objects.requireNonNull(MAP.get(string));
}
}