제네릭에 대한 질문이 있습니다. 나는이 방법을 전혀 컴파일하지 않습니다. 컴파일러에서 내게 알려줍니다 : type parameter E is not within its bound
. 나는 보통 컴파일러 에러를 이해하는데 아무런 문제가 없다. 그러나 이것은 매우 까다 롭다. 어쩌면 제네릭에 대한 지식이 향상되어야 할 수도 있습니다. :-) 아무도 나에게 뭐가 잘못 됐는지 말해 줄 수 있니? Java Generics 질문 : 매개 변수 E가 해당 바인딩 내에 없습니다.
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;
}
이
이StringConvertableEnum
의 정의입니다 : 당신은
E extends Enum<E>
편집에 선언을 변경해야
public interface StringConvertableEnum<E extends Enum> {
public E getEnumFromStringValue(String string);
public String getStringValue();
}
라인 번호 불평하고 있으십니까? – bmargulies
@bmargulies : EnumSet set = EnumSet.allOf (enumClass); 그 줄이야. –
Kraushauslaus
나는 내 깊이가있다. 귀하의 코드는 나에게 그럴듯 해 보입니다. 그런데 – bmargulies