我有一个标题为:
的静态方法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的方法吗?
答案 0 :(得分:1)
Entity
扩展Object
是正确的,但由于泛型的工作方式,Map<Integer, Entity>
不会扩展Map<Integer, Object>
。如果允许,您可以向地图添加一个映射到实体的对象。
以下是Oracle Java教程的参考资料:
使排序方法通用:
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)