Сопоставление строки с перечислением Java без учета регистраJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Сопоставление строки с перечислением Java без учета регистра

Сообщение Anonymous »

предоставляет метод valueOf() для каждого объекта Enum, поэтому задано перечисление типа

Код: Выделить всё

public enum Day {
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
можно выполнить поиск, например

Код: Выделить всё

Day day = Day.valueOf("Monday");
Если строка, переданная в valueOf(), не соответствует (с учетом регистра) существующему значению Day, возникает исключение IllegalArgumentException. брошено.

Чтобы выполнить сопоставление без учета регистра, можно написать собственный метод внутри перечисления Day, например

Код: Выделить всё

public static Day lookup(String day) {
for (Day d : Day.values()) {
if (d.name().equalsIgnoreCase(day)) {
return type;
}
}
return null;
}
Есть ли какой-либо общий способ без использования кэширования значений или каких-либо других дополнительных объектов написать метод статического поиска(), подобный приведенному выше, только один раз ( т. е. не для каждого перечисления), учитывая, что методvalues() неявно добавляется к классу Enum во время компиляции?
Сигнатура такого «общего» метода поиска() будет аналогична методу Enum.valueOf(), т.е.:

Код: Выделить всё

public static  T lookup(Class enumType, String name);
и он будет точно реализовывать функциональность метода Day.lookup() для любого перечисления без необходимости переписывать тот же метод для каждого перечисления.

Подробнее здесь: https://stackoverflow.com/questions/283 ... -java-enum
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»