我有一个方法(我们称之为doSomething),它接受 aMap<String,Object>并且我想传入 a Map<String,Foo>(当然,Foo 扩展了 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>
在我看来,Foo 应该多态地转换为 Object。我也尝试过强制转换map为Map<String,Object>,它只是告诉我“不可转换的类型”。我能做些什么来解决多态性问题?