作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个方法(我们称之为 doSomething
),它接受 Map<String,Object>
。我想传递 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>
,它只是告诉我“不可转换的类型”。我该如何解决多态性问题?
最佳答案
您需要使用通配符
Map<String, ? extends Object>
关于java - 具有多态泛型的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11605043/
我是一名优秀的程序员,十分优秀!