¿Por qué mutableMapOf devuelve un valor nulo?

Escribí un simple bloque de código para almacenar fragments con ids en Map . El value y la key del map se inicializan como no anulables, pero cuando quiero getlos como key y value , proporciona datos de tipo nullable . Entonces, no entiendo por qué? ¿Hay algún otro tipo de map que devuelva datos non-nullable en Kotlin ?

enter image description here

Es posible que no haya ningún valor para la [position] key, lo que hará que devuelva null :

 abstract operator fun get(key: K): V? 

Devuelve el valor correspondiente a la key dada, o nulo si tal key no está presente en el map.

@nhaarman está en lo correcto, pero puede usar getValue(key) que devuelve no anulable pero arroja NoSuchElementException si no se encuentra.

 /** * Returns the value for the given [key] or throws an exception if there is no such key in the map. * * If the map was created by [withDefault], resorts to its `defaultValue` provider function * instead of throwing an exception. * * @throws NoSuchElementException when the map doesn't contain a value for the specified key and * no implicit default value was provided for that map. */ @SinceKotlin("1.1") public fun <K, V> Map<K, V>.getValue(key: K): V = getOrImplicitDefault(key) 
  • ¿Cuál es la forma recomendada de usar el Kotlin double-bang para miembros de class que aceptan nulos?