Итак, в 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] там, где нужен Class [Component].
trait ComponentContainer {
val componentMap: HashMap[Class[Component], Component] = HashMap.empty
def set (c: Component) {
val t = (c.getClass, c)
componentMap += t
}
}
Это меня совершенно озадачило, любая помощь будет принята с благодарностью.