Код: Выделить всё
class EnumRegistry {
Map> getEnumClass(String enumTypeName) {
return checkNotNull(ENUM_DESCRIPTOR_MAP.get(enumTypeName), "Unsupported enum type");
}
}
Код: Выделить всё
class OtherClass {
// Gets some stored enum value
public T getEnum(Class clazz) {
//... some work
}
}
Код: Выделить всё
String enumDescriptor = "some.package.Status"
OtherClass other = new OtherClass();
other.getEnum(EnumRegistry.getEnumClass(enumDescriptor));
Код: Выделить всё
method getEnum in class package.Other cannot be applied to given types;
required: java.lang.Class
found: java.lang.Class
upper bounds: java.lang.Enumjavac(compiler.err.cant.apply.symbol)
Код: Выделить всё
public void doWork() {
String enumDescriptor = "some.package.Status";
OtherClass other = new OtherClass();
getEnumValue.getEnumValue(enumDescriptor, other);
}
@SuppressWarnings("unchecked")
private T getEnumValue(String enumDescriptor, OtherClass other) {
Class enumClass = (Class) EnumRegistry.getEnumClass(enumDescriptor);
return other.getEnum(enumClass);
}
Подробнее здесь: https://stackoverflow.com/questions/788 ... ends-enumt