미안합니다. "Java 일반 메서드는 적용 할 수 없습니다."질문. 내가 내 이해 잃었는지 알고 싶습니다일반 메서드가 인수에 적용되지 않습니다.
List<E>
이Collection<E>
의 하위 유형입니다 -> 의미,List<String>
이Collection<String>
한다고 가정의 하위 유형 인 B,
List<A>
확장 > 그러나이 경우,T
(또는String
), 그래서이 표시되지 않는 한 종류가 얼마나 대체 공주 역 - 하지List<B>
의 하위 유형입니다 립이 내 문제를 설명해 줄 수 있니?
문제 코드 :
private <T, K> void genericAddToMapOfLists(HashMap<K, Collection<T>> mapOfLists,
K key, T value) {
if (mapOfLists.containsKey(key)) {
mapOfLists.get(key).add(value);
} else {
List<T> newList = new ArrayList<T>();
newList.add(value);
mapOfLists.put(key, newList);
}
}
private void parseToFruitList(HashMap<String, List<String>> fruit_colors,
String fruitName) {
String color = "";
genericAddToMapOfLists(fruit_colors, fruitName, color);
}
오류 : 나는이 genericAddToMapOfLists(HashMap<K,List<T>>, K, T)
에 메서드 서명을 변경할 때
The method genericAddToMapOfLists(HashMap<K,Collection<T>>, K, T) in the type MyGroceryStore is not applicable for the arguments (HashMap<String,List<String>>, String, String)
코드는 작동합니다.
제목에 주요 태그를 추가 할 필요가 없습니다. –