Я пытаюсь преобразовать String
в перечисление в Groovy, но я хочу использовать имя, отличное от буквального имени перечисления.
Допустим, у меня есть некоторое перечисление, которое использует пользовательский имя вот так:
enum Breed {
HUSKY('Husky'),
LABRADOR('Labrador'),
POODLE('Poodle')
private final String name
Breed(String name) {
this.name = name
}
String toString() {
name
}
}
В его нынешнем виде я могу получить Breed
со следующим кодом:
Breed breed = 'HUSKY' as Breed
Однако я хотел бы иметь возможность переопределить это вместо этого использовать поле имени следующим образом:
Breed breed = 'Husky' as Breed
Есть ли способ, который я могу реализовать или переопределить в этом перечислении, чтобы сначала проверить поле имени? В идеале я бы хотел избежать необходимости переопределять метод asType
в String
для достижения желаемого поведения.