以我使用情况下,我有协变型的Foo [+ T]和类A类<:T,B <:T,C <:T, 我需要存储一个地图“A” - >一个Foo [A]实例,“B” - >一个Foo [B]实例和“C” - >一个Foo [C]实例,这在scala中是可能的吗?地图<字符串,列表<? extends T>> Scala中
目前我宣布我的地图为Map [String,Foo [T]]]但我不能在里面添加Foo [A],编译器告诉我Foo [T]而不是Foo [A],这似乎是由Map参数缺乏协变性引起的,是否有解决方案?
我现在的解决方法是去参数化Foo并投入代码中,这当然不会让我满意,我也看到我可以使用java集合,但我宁愿留在scala中。
预先感谢您的时间
你说的是可变的或不可变的地图?与不可变的地图,值类型协变... –
哦,对,我实际上使用HashMap实现作为Java的愚蠢反射,这是scala中的错误,而HashMap不是协变>< – jolivier