方法sort(Map <integer,object>)不适用于参数(Map <integer,entity>)

时间:2015-12-05 04:16:03

标签: java hashmap

我有一个标题为:

的静态方法
public static Map<Integer, Object> sort(Map<Integer, Object> inputMap) {

我试着用它来调用它:

MapUtil.sort(entities);

这是将实体设置为:

private Map<Integer, Entity> entities = new HashMap<Integer, Entity>();

我收到此错误:

  

MapUtil类型中的方法sort(Map)不是   适用于参数(地图)

实体扩展了Object,所以我不能将Map投射到需要Map的方法吗?

2 个答案:

答案 0 :(得分:1)

Entity扩展Object是正确的,但由于泛型的工作方式,Map<Integer, Entity>不会扩展Map<Integer, Object>。如果允许,您可以向地图添加一个映射到实体的对象。

以下是Oracle Java教程的参考资料:

enter image description here

使排序方法通用:

public static Map<Integer, Object> sort(Map<Integer, Object> inputMap) {

将其改为:

public static <T> Map<Integer, T> sort(Map<Integer, T> inputMap) {

然后编译器将允许使用任何类来代替T

答案 1 :(得分:0)

更改

public static Map<Integer, Object> sort(Map<Integer, Object> inputMap)

public static <T> Map<Integer, T> sort(Map<Integer, T> inputMap)