나는 다음과 multimap은을 만들려고하고 Multimap과하는추가 확장 클래스는
방법
put(String, capture#2-of ? extends A)
형식이Multimap<String,capture#2-of ? extends A>
이면(String, B)
인수에는 적용 할 수 없습니다.
나는 B
이 A
를 확장하는 B
때문에 추가 할 수 있어야합니다. 그러나 나는 할 수 없다.
나는 다음과 multimap은을 만들려고하고 Multimap과하는추가 확장 클래스는
방법
put(String, capture#2-of ? extends A)
형식이Multimap<String,capture#2-of ? extends A>
이면(String, B)
인수에는 적용 할 수 없습니다.
나는 B
이 A
를 확장하는 B
때문에 추가 할 수 있어야합니다. 그러나 나는 할 수 없다.
당신이 유형 A
또는 A
의 하위 유형의 객체에 String
에서 multimap은 의미 경우, 그는 Multimap<String, A>
입니다. String
에서 특정이지만 알 수없는 하위 유형의 객체에 대한 다중 맵을 의미하는 경우 Multimap<String, ? extends A>
입니다.
그들은 키가
? extends A
을하기 때문에 당신은 위해에 값을 추가 할 수 없습니다 및 컴파일러는 하한 유형을 알 수 없습니다.
예를 들어 C도 A를 확장하고 멀티 맵에 B와 C를 모두 추가하려고합니다. 그걸 얻기 위해서는 Multimap을 구성하지 않아야합니까? 연장 A ?? – Ikshvak
아니요, 그러지 마세요. 이 경우에는'Multimap'을 원합니다. –
'Multimap는'A '를 확장하는'X'라는 특정 타입이 있고'Multimap'은 실제로'Multimap '이지만 실제로는'X'가 무엇인지 모릅니다. 'null '을 제외한 _any_ 값을'Multimap '를 확장합니다. –