【发布时间】:2012-07-23 00:08:45
【问题描述】:
我有一个方法(我们称之为doSomething),它接收Map<String,Object>,我想传入Map<String,Foo>(当然,Foo 扩展了对象)。当我编译时,它说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>
在我看来,Foo 应该被多态地转换为 Object。我还尝试将map 转换为Map<String,Object>,这只是告诉我“不可转换的类型”。如何解决多态性问题?
【问题讨论】:
-
你是对的。感谢您找到那个。
-
现在,你知道如何结束这个问题了吗?
标签: java generics map casting polymorphism