В моем случае использования у меня есть класс с ковариантным типом Foo[+T] и классы A ‹: T, B ‹: T, C ‹: T, мне нужно сохранить карту «A» -> экземпляр Foo[A] , "B" -> экземпляр Foo[B] и "C" -> экземпляр Foo[C], возможно ли это в scala?
В настоящее время я объявляю свою карту как Map[String, Foo[T]]], но тогда я не могу добавить внутрь Foo[A], компилятор говорит мне, что ожидается Foo[T], а не Foo[A ], что, по-видимому, вызвано отсутствием ковариации параметра Map, есть ли решение?
Мой обходной путь на данный момент состоит в том, чтобы депараметризировать Foo и ввести код, что, конечно, меня не радует. Я также видел, что вместо этого могу использовать коллекции Java, но я бы предпочел остаться со scala.
Спасибо заранее за ваше время