我有一个方法(我们称之为doSomething
),它需要一个Map<String,Object>
,我想通过Map<String,Foo>
(Foo extends Object,当然)。当我编译时,它说doSomething
不能应用于给定的类型。这里是我的代码:具有多态的泛型映射
public class FooMapChoo {
private Map<String, Foo> map;
public void doSomething(Map<String,Object>) {
}
public static void main(String...args) {
doSomething(map);
}
}
编译器输出:
method doSomething in class FooMapChoo cannot be applied to given types;
doSomething(map);
^
required: Map<String,Object>
found: Map<String,Foo>
这在我看来,富应该多态转换为对象。我也尝试铸造map
到Map<String,Object>
,这只是告诉我“不可兑换的类型”。我能做些什么来解决多态性问题?
的[是'名单'名单的'子类'可能重复?为什么不是Java的泛型隐式多态?](http://stackoverflow.com/questions/2745265/is-listdog-a-subclass-of-listanimal-why-arent-javas-generics-implicit) –
trutheality
2012-07-23 00:16:47
你是对的。感谢您找到那个。 – LastStar007 2012-07-23 02:01:13
现在,你知道如何解决这个问题吗? – LastStar007 2012-07-23 03:33:53