以我使用情況下,我有協變型的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