Я хотел бы иметь общий тип возвращаемого значения для метода enum getValue()
.Возвращаемый тип должен совпадать с типом, указанным в конструкторе перечисления.
public enum ParameterType
{
NUMBER(int.class),
TEXT(String.class);
private Class<?> classType;
ParameterType(Class<?> _clazz)
{
classType = _clazz;
}
public <T> T getValue()
{
String a = "i am a text";
int b = 42;
return classType.cast(a);
//return classType.cast(b);
}
}
Однако в этом случае возникает ошибка «невозможно преобразовать из захвата № 3? В T».Кроме того, невозможно предоставить общий тип «X» для самого перечисления, который мог бы использоваться для возвращаемых типов в случае классов.
Как я могу решить эту проблему?