2
У меня есть класс, который должен быть ковариантным. Этот класс содержит карту и ключ этой карты должен быть использовать тот же тип T, как мой класс:Scala covariant class containg Map (ключ в инварианте)
class A
class B extends A
class Container[+T](val content: T) {
val map : Map[T, _] = Map.empty
}
val c1: Container[A] = new Container[B](new B) // needs to compile (covariant)
Это не компилируется, поскольку параметр Map типа ключа инвариантен. Есть ли обходной путь для такого рода ситуаций?
Спасибо :)
Вы знакомы с PECS? –
Кажется, нет :) – Loic