이 항목에 대한 몇 가지 질문을 보았지만 여전히이 문제를 해결하는 방법을 알 수 없습니다. 나는 변수를 다음과 같이 정의하고 초기화한다 :중첩 된 제네릭 및 와일드 카드
Queue<? extends Map<String, String>> q = new LinkedList<HashMap<String, String>>();
그리고 컴파일한다. 하지만 :
Map<String, String> m = new HashMap<String, String>();
m.put("foo", "bar");
q.add(m);
은 컴파일 오류 : no suitable method found for add(Map<String,String>)
을보고합니다.
편집 :
내가 제네릭이 질문에 중첩되지 않기 때문에이, Can't add value to the Java collection with wildcard generic type 서로 다른 생각합니다.
또한, 허용되는 대답은 템플릿 클래스의 특정 구현을 일부 선언에서 생략 할 수 있다고 설명합니다. 이 교훈은 중복 된 것으로 표시된 질문에서 찾을 수 없습니다.
굉장 경우! 당연하지! 나는이 시점에서지도 구현의 선언을 연기 할 수 있다는 것을 몰랐다. 고맙습니다. – clapas