2
的类,所以在Java中我有包含所使用的类作为键指向同一个类的对象是一个HashMap类。斯卡拉得到一个参数
class ComponentContainer {
private HashMap<Class<? extends Component>, Component> componentMap
public ComponentContainer {
componentMap = new HashMap<Class<? extends Component>, Component>();
}
public void set (Component c) {
componentMap.put(c.getClass(), c);
}
}
然而,当我试图做同样的事情Scala中的一个特征中,我发现自己得到一个类型不匹配错误,一个java.lang.Class中的[?0],发现其中类[成分]需要。
trait ComponentContainer {
val componentMap: HashMap[Class[Component], Component] = HashMap.empty
def set (c: Component) {
val t = (c.getClass, c)
componentMap += t
}
}
这让我绝对难住,任何帮助将不胜感激。
这是完美的,谢谢你。我不认为我有什么理由担心部件的类型参数。这一切似乎都那么明显,一旦有人指出它给你。干杯! – 2011-05-01 00:22:25