Enum имеет valueOf метод:valueOf из Enum
public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
Так что, когда у меня есть перечисление:
public enum Basket {
APPLES, ORANGES, FLOWERS
}
код
Basket b = Basket.valueOf(Basket.class, "APPLES");
приносит мне то же самое объект, а также
Basket b2 = Basket.APPLES;
i.e., b.equals (b2) является истинным из двух строк выше.
Что я задаюсь is-- что
public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
хорошо.
Возможно использование его в API-интерфейсе отражения, который я не могу собрать прямо сейчас. вне этого, имеет ли этот метод конкретное использование? что бы пропало, если у класса Enum не было этого метода?
То же самое для valueOf-с одной parameter-- определяется неявно в Enum:
Basket.valueOf("APPLES");
делает то же самое, как
Basket.valueOf(Basket.class, "APPLES");
Что толку?
I может быть недоразумением вопрос немного - это вы пытаетесь определить разницу между ними или варианты использования? – Makoto
@ Makoto точно, что говорит Q - «что использовать для valueOf» - что бы пропало из java-мира, если оно там не было. см. ответ Ади ниже. – Roam