Próbuję Kotlin i napotkałem mały problem, którego nie mogę rozwiązać. Kiedy mam następującą konstrukcję można umieścić elementy na mapie:Wstawianie elementu do HashMap z interfejsem mapy
val map = HashMap<String, String>()
map["asd"] = "s"
map.put("34", "354")
Jednak gdy tworzę mapę z interfejsem Map
mogę tylko je czytać, co robię źle?
val map: Map<String, String> = HashMap<String, String>();
map.put("24", "34") //error
map["23"] = "23" //error
A może wprowadzam w błąd coś o interfejsach w Kotlin?
Jadąc od Javy, ważne jest, aby pamiętać, że mapa nie pochodzi z java.util.Map, ale z mapy zdefiniowanej w Collections.kt. Jako nowicjusz Kotlin, również mnie to zaskoczyło. Jak wspomniano powyżej Mapa jest tylko do odczytu; aby zmienić mapę użyj MutableMap. Istnieją również metody pomocnicze do tworzenia różnych map w Maps.kt, np. HashMapOf itd –