Я пытаюсь получить значение ENUM поля ENUM класса. «значение» на самом деле является строковым значением, считанным из файла. Получение, но получение его, как показано ниже, выдает мне непроверенное предупреждение о приведении:
Object value = "BAR";
Field field = Test.class.getField("bar");
if (field.getType().isEnum()) {
value = Enum.valueOf((Class) field.getType(), (String) value);
Test test = new Test();
field.set(test, value);
}
...
public class Test {
public Foo bar;
}
...
public enum Foo {
BAR;
}
Предупреждение понятно, но я не понимаю, как ответить на это предупреждение, есть какие мысли?
[unchecked] unchecked method invocation: method valueOf in class Enum is applied to given types
required: Class,String
found: Class,String
where T is a type-variable:
T extends Enum declared in method valueOf(Class,String)
Подробнее здесь: https://stackoverflow.com/questions/782 ... ecked-cast