这句话有什么问题呢?
private final HashMap<String, SortedMap<Long, Long>> abc;
abc = new HashMap<String, TreeMap<Long, Long>>;它显示这样的错误:SortedMap不能转换为TreeMap?我怎么才能做到这一点呢?
发布于 2018-11-13 13:49:29
如果您真的希望能够以这种方式分配它,那么您是否可以使用带有绑定? extends SortedMap的通配符。例如:
private final Map<String, ? extends SortedMap<Long, Long>> abc;
...
abc = new HashMap<String, TreeMap<Long, Long>>();也就是说,在创建新的外部hashmap实例时,您不必指定嵌套的映射类型。只需将其作为SortedMap保存。稍后,当您插入一个值时,它可以是新的TreeMap实例,因为它们实现了SortedMap。例如
private final Map<String, SortedMap<Long, Long>> abc;
...
abc = new HashMap<String, SortedMap<Long, Long>>();
abc.put("Test", new TreeMap<Long, Long>());在缩短了这段用于类型推断的代码之后,赋值行可能如下所示:
abc = new HashMap<>();
abc.put("Test", new TreeMap<>());发布于 2018-11-13 13:49:59
您尚未初始化您的HashMap。记得在实例化新对象时使用构造函数。
import java.util.*;
public class MyClass {
public static void main(String args[]) {
HashMap<String,SortedMap<Long,Long>> abc;
abc = new HashMap<>();
}
}https://stackoverflow.com/questions/53274553
复制相似问题