Mam pytanie dotyczące leków generycznych. Mam tę metodę, która nie kompiluje się w ogóle. Kompilator mówi mi: type parameter E is not within its bound
. Zwykle nie mam problemu ze zrozumieniem błędów kompilatora, ale ten jest dość trudny. Może moja wiedza na temat leków generycznych wymaga poprawy. :-) Czy ktoś może mi powiedzieć, co jest nie tak?Java Generics Pytanie: typ parametru E nie jest w jego granicach
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;
}
To jest definicja StringConvertableEnum
:
public interface StringConvertableEnum<E extends Enum> {
public E getEnumFromStringValue(String string);
public String getStringValue();
}
numer linii na który narzeka? – bmargulies
@bmargulies: EnumSet zestaw = EnumSet.allOf (enumClass); jest linia. –
Kraushauslaus
Jestem poza moją głębią. Twój kod wygląda na wiarygodny. – bmargulies