В моем случае использования у меня есть класс с ковариантным типом 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.
Заранее спасибо за ваше время