나는 Map<String,Object>
을 취하는 메서드 (가령 doSomething
)를 가지고 있는데, Map<String,Foo>
(Foo extends Object, 물론)을 전달하고 싶습니다. 컴파일 할 때 주어진 유형에 doSomething
을 적용 할 수 없다고합니다.다형성 제네릭을 사용하여지도
method doSomething in class FooMapChoo cannot be applied to given types;
doSomething(map);
^
required: Map<String,Object>
found: Map<String,Foo>
푸가 다형 Object로 캐스팅해야한다고 나에게 보인다
public class FooMapChoo {
private Map<String, Foo> map;
public void doSomething(Map<String,Object>) {
}
public static void main(String...args) {
doSomething(map);
}
}
컴파일러 출력 : 여기 내 코드입니다. 또한 map
에서 Map<String,Object>
으로 캐스팅을 시도했는데, 이는 "불변의 유형"이라고 말합니다. 다형성 문제를 해결하기 위해 무엇을 할 수 있습니까?
중복 가능성을 사용할 필요가? 왜 Java의 제네릭은 암시 적으로 다형성이 아닙니까?] (http://stackoverflow.com/questions/2745265/is-listdog-a-subclass-of-listanimal-why-arent-javas-generics-implicit) – trutheality
맞아요. . 그 중 하나를 찾아 주셔서 감사합니다. – LastStar007
이제 질문을 닫는 방법을 알고 있습니까? – LastStar007