0
기본 클래스는 TaskVO
입니다. TaskVO
구체 맵을 일반 유형 맵에 지정
다음은 내 두 맵 선언, 첫 번째 버전은 일반 및 두 번째 버전은 특수화 된 것입니다.
Map<String, List<? extends TaskVO>> genericTaskVoMap = new HashMap<String, List<? extends TaskVO>>();
Map<String, List<TaggingTaskVo>> taskVoMap = new HashMap<String, List<TaggingTaskVo>>();
genericTaskVoMap에 taskVoMap을 할당 할 수없는 이유는 무엇입니까?
genericTaskVoMap = taskVoMap; //Type mismatch: cannot convert from Map<String,List<TaggingTaskVo>> to Map<String,List<? extends TaskVO>>
그러나 유형 목록을 서로 할당 할 때 불평하지 않습니다.
List<? extends TaskVO> genericTaskVoList = new ArrayList<>();
List<TaskVO> taskVoList = new ArrayList<TaskVO>();
genericTaskVoList = taskVoList; //No compilation error
뭔가 조금 이상한이 함께 할 수있다 –
가 중첩 된 와일드 카드의 원칙은이 웹 사이트를 확인하십시오. http://bayou.io/draft/Capturing_Wildcards.html#Nested_Wildcards "캡처 변환은 중첩 된 와일드 카드가 아닌 최상위 와일드 카드에만 적용됩니다." –