cómo convertir a NotNull usando enum en Kotlin

¿Cómo puedo convertir el siguiente código a NotNull aceptado dentro de la class enum usando Kotlin ?

Nota: estoy usando esta enumeración entre dos actividades y una actividad tiene 2 adaptadores.

Aquí está la class enum

 enum class Adapterx { ADAPTER_1, ADAPTER_2; companion object { fun fromOrdinal(ordinal: Int): Adapterx? { return Adapterx.values().firstOrNull { it.ordinal == ordinal } } } } 

Como no puede restringir el ordinal: Int parámetro ordinal: Int como lo ha definido, tiene dos opciones si recibe un ordinal que no es parte de la enumeración o está fuera de límites:

  • Devuelve un valor pnetworkingeterminado
  • Lanza una exception

En mi humilde opinión, ambos casos son plausibles si documenta adecuadamente el método.

Aquí hay un caso en el que solo devuelve un valor pnetworkingeterminado si solicita un ordinal que no existe:

 class KotlinEnumTest { enum class Adapterx { ADAPTER_1, ADAPTER_2; companion object { val defaultValue = ADAPTER_1 fun fromOrdinal(ordinal: Int): Adapterx = Adapterx.values().getOrElse(ordinal, { _ -> defaultValue }) } } @Test fun testEnumOrdinals() { val resultAdapter1 = Adapterx.fromOrdinal(0) Assert.assertEquals(Adapterx.ADAPTER_1, resultAdapter1) val resultAdapter2 = Adapterx.fromOrdinal(1) Assert.assertEquals(Adapterx.ADAPTER_2, resultAdapter2) // The following returns the default value ADAPTER_1 val resultOrdinalIndexOutOfBounds = Adapterx.fromOrdinal(2) Assert.assertEquals(Adapterx.ADAPTER_1, resultOrdinalIndexOutOfBounds) } } 
  • Realm, findAllSorted y distinct
  • Kotlin: ¿Cómo puedo verificar si un número tiene puntos decimales (la solución del module no funciona)
  • Clase de datos de SpringBoot + Jackson + Kotlin: annotations de campo ignoradas
  • Invertir un infijo boolean resultado kotlin
  • ¿Cómo comparar un progtwig de Kotlin?
  • Kotlin: la expresión 'longitud' de tipo 'Int' no se puede invocar como una function. La function 'invoke ()' no se encuentra
  • FirebaseListAdapter ignora orderByChild () e equalTo ()
  • Convirtiendo un Observable en un Flujo con contrapresión en RxJava2
  • RxJava cómo agrupar elementos de una list en Map <Key, List <Value >>
  • Error de compilation de Kotlin cuando se usa Parcelable
  • Biblioteca kotlin klaxon para json