Tengo una pregunta sobre los genéricos. Tengo este método que no compila en absoluto. El compilador me dice: type parameter E is not within its bound
. Normalmente no tengo problemas para entender los errores del compilador, pero este es bastante complicado. Tal vez mi conocimiento sobre los genéricos necesite mejorar. :-) ¿Alguien puede decirme qué está mal?Java Generics Pregunta: escriba el parámetro E no está dentro de su límite
public static <E extends Enum & StringConvertableEnum<E>> Map<String, E> map(Class<E> enumClass) {
Map<String, E> mapping = new HashMap<String, E>();
EnumSet<E> set = EnumSet.allOf(enumClass);
for(E enumConstant : set) {
mapping.put(enumConstant.getStringValue(), enumConstant);
}
return mapping;
}
Esta es la definición de StringConvertableEnum
:
public interface StringConvertableEnum<E extends Enum> {
public E getEnumFromStringValue(String string);
public String getStringValue();
}
número de línea a la que se está quejando? – bmargulies
@bmargulies: EnumSet set = EnumSet.allOf (enumClass); es la linea –
Kraushauslaus
Estoy fuera de mi profundidad. Tu código parece plausible para mí. – bmargulies