mapOfMap["Key1"]
возвращает Map<String, String>?
, а оператор get
для nullable Map
не указан. Поэтому следующий код не компилируется:
mapOfMap["Key1"]["Subkey1"]
Вы можете скомпилировать его, создав функцию расширения get
operator
с обнуляемым Map
получателем:
operator fun <K, V> Map<K, V>?.get(key: K): V? = this?.get(key)
Вы также можете создать расширение get
operator
для карт карт:
operator fun <K1, K2, V> Map<K1, Map<K2, V>>.get(key1: K1, key2: K2): V? = get(key1)?.get(key2)
И использовать его следующим образом:
mapOfMap["Key1", "Subkey1"]