자바 예를 들어, <? extends class>
하여이 경우 빌드 새의 HashMap를 사용할 수있는 자바 클래스를 필터링하는 방법을 나에게 제공 >> 직렬화 :Map <String, Class <? 확장
내가 할 수있는 :
Map<String,? extends Serializable> map1 = new HashMap<String,String>();
String은 Serializable을 구현하기 때문에 컴파일러가 올바르게 처리 할 수 있습니다.
하지만 난 그렇게하려고하면
Map<String,GenericClass<? extends Serializable>> map2 = new HashMap<String, GenericClass<String>>();
는 그것으로 GenericClass 인 :
public class GenericClass<T>
{
.
.
.
}
컴파일러가 말하는 오류가 발생 :
Type mismatch: cannot convert from HashMap<String,GenericClass<String>> to Map<String,GenericClass<? extends Serializable>>
싶습니다에 있잖아, 무슨 일이야?
아마도 컴파일러는 확장 클래스를 제네릭 형식의 일부로 검색 할 수 없습니다.
것은 프로그래머 실종>에서 '새의 HashMap <문자열, GenericClass();' –
내가 잘못 자바 중첩 [의 – Ivan
중복 가능성을 편집 붙여 미안 와일드 카드 제네릭 컴파일되지 않습니다] (http://stackoverflow.com/questions/3405866/java-nested-wildcard-generic-wont-compile) –