假设我有接口(或超类,无关紧要)Program
和实现Firefox
。我想通过依赖注入在一些类状态Map<Long,Program> mapOfPrograms
中定义一个映射,然后在setter集mapOfPrograms = new TreeMap<Long,Firefox>();
中定义。我需要能够mapOfPrograms.put(1l,new Firefox());
或mapOfPrograms.put(1l,(Program)(new Firefox()));
然后我需要能够get
并使用这些对象。
我收到错误Type Mismatch: cannot convert from Map<Long,Program> to TreeMap<Long,Firefox>
。如果Program
是接口或超类,则无关紧要。
我如何克服这个问题?
答案 0 :(得分:1)
试试这个
class MyMap<K,T extends Program> extends TreeMap<K,Program>{
private static final long serialVersionUID = 1L;
}
interface Program{
}
class Firefox implements Program{
}
这是你的代码
Map<Long, Program> map=new MyMap<Long,Firefox>();
map.put(1L, new Firefox());