Какая польза от использования функции fromValue вместо valueOf, java enums?
Я вижу, что некоторые программисты используют в перечислении структурную функцию, называемую fromValue. Какова цель, если мы можем использовать valueOf? Например, я нашел что-то вроде этого:
public static FooEnum fromValue(String v) {
return valueOf(v);
}
2 ответа
Решение
У вас может быть недопустимое строковое значение:
public static FooEnum fromValue(String v) {
try {
return valueOf(v);
} catch (InvalidArgumentException e) {
return FooEnum.UNKNOWN;
}
}
Подумайте о перечислении, которое имеет строковое свойство, значение которого отличается от имени перечисления.
public enum FooEnum {
A("foo"),
B("bar"),
;
...
}
Тогда вам нужен такой метод для поиска значений свойств. Смотрите также этот ответ