如何在java中获取接口或超类的映射

时间:2014-04-05 14:14:16

标签: java inheritance interface

假设我有接口(或超类,无关紧要)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是接口或超类,则无关紧要。

我如何克服这个问题?

1 个答案:

答案 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());