Cómo usar con envoltorios pnetworkingeterminados?

Quiero usar MutableMap con los valores pnetworkingeterminados :

 val myMap = mutableMapOf<String, Set<String>>().withDefault { mutableSetOf() } 

pero no puedo usar el método getOrImplicitDefault porque withDefault devuelve el tipo MutableMap<String, Set<String>> . Además, no puedo convertir a la interfaz MutableMapWithDefault porque esta es una interfaz privada .

Tampoco puedo usar el método get porque devuelve un tipo que admite nulos. Está bien porque este es un método en la interfaz MutableMap (además, no llama a la callback defaultValue para tomar el valor pnetworkingeterminado).

Parece que esta funcionalidad no está implementada correctamente en Kotlin, o la estoy usando mal. Entonces, ¿cómo uso withDefault envolturas withDefault correctamente?

Actualmente, un contenedor devuelto por withDefault solo se puede usar en casos de uso de delegación de properties.

 val map = mutableMapOf<String, Set<String>>().withDefault { mutableSetOf() } var property: Set<String> by map // returns empty set by default 

Parece que en Kotlin 1.1 esto realmente funciona si usas la function getValue () en lugar de la function get() .

Bueno, todas las implementaciones de getOrImplicitDefault networkingirigen t a getOrElseNullable . Quizás intente eso.

  • Android Plugin 2.2.0-alpha1 no comstack con Kotlin
  • Clase de datos Igualdad en Kotlin
  • Encuentre annotations en el proyecto Kotlin / Groovy en IDEA Plugin
  • Usar la habitación como singleton en kotlin
  • Crash daga cuando construyes el proyecto
  • ¿Por qué nunca se llama a createView?
  • Configuración de Maven para usar Dagger 2 en un proyecto Java / Kotlin mixto
  • ¿Qué representa una matriz de nulls en Kotlin?
  • Kotlin: obteniendo datos de Firebase
  • La function en línea no puede acceder a API no pública: @PublishedApi vs @Suppress vs @JvmSynthetic
  • ¿Agregar int e int? en Kotlin