1
Я хочу реализовать с помощью Scala аналога следующего кода Java:Объявить общий метод возвращение перечисления
static <T extends Enum> T getEnumByPrefix(String prefix, Class<T> enumClass) {
for (T enumValue : enumClass.getEnumConstants()) {
if (enumValue.name().startsWith(prefix)) {
return enumValue;
}
}
throw new NoSuchElementException();
}
Но я не могу понять, как объявить метод scala.Enumeration.
Я попытался
def enumByPrefix[T <: Enumeration](prefix: String): T.Value = ...
но не компилируется.
Я попытался
def enumByPrefix[T <: Enumeration.Value](columnLabel: String): T = ...
но не компилируется тоже.
В основном я хочу использовать его следующим образом:
object PaymentMethod extends Enumeration {
val Insurance, Cash = Value
}
...
val paymentMethod: PaymentMethod.Value = enumByPrefix[PaymentMethod]("Insurance")
(я использовал byPrefix только для примера, реальный алгоритм будет отличаться).