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) } } 
  • No hay forma de comstackr mi propia biblioteca de kotlin
  • Kotlin IllegalAccessError con + = y - = para la interfaz delegada
  • Kotlin: lambda nunca comstack
  • ¿Cómo definir un miembro delegado que se puede anotar en Kotlin?
  • Kotlin - TypeCastException en view.getTag ()
  • Referencia no resuelta: kotlinx - Kotlin 1-0-0-rc-1036
  • Android Studio (Kotlin) GsonBuilder.registerTypeAdapter () da 2 errores
  • Evite otra pausa de la aplicación de audio en YouTubePlayerFragment init
  • Cómo vincular la vista en RecyclerView.ViewHolder con kotlin
  • Comience la actividad de kotlin * .kt desde la actividad de java * .java?
  • Referencia no resuelta: DaggerTestComponent (Kotlin with Dagger for Test)