Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

469
Vistas
Cómo seleccionar el valor de enumeración correcto de una función kotlin

Estoy esperando algún valor de cadena y necesito encontrar, si tengo definido el valor de enumeración correspondiente.

mi valor de enumeración es

 enum class Status { Created, Updated }

y lo que quiero lograr en esta función es verificar si alguno de estos valores enumerados coincide, ignorar el caso

 private fun getStatus( value: String ): Status { .... }

si nada coincide, entonces quiero arrojar un error.

desde ya muchas gracias por tu ayuda!!

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Nota : en esta respuesta, me perdí el requisito de que la función no distinga entre mayúsculas y minúsculas. Esas funciones integradas solo encuentran coincidencias exactas.


Respuesta original:

Hay una función valueOf() incorporada que puede usar y que hace exactamente eso:

 val status = Status.valueOf("Created")

Si está en un contexto genérico y no puede usar el nombre de la clase enum directamente, también puede usar enumValueOf() :

 val status = enumValueOf<Status>("Created")

Aquí está el documento sobre esto: https://kotlinlang.org/docs/enum-classes.html#working-with-enum-constants

over 4 years ago · Santiago Trujillo Denunciar

0

Las funciones integradas para enumeraciones como Enum.valueOf o enumValueOf<Enum> distinguen entre mayúsculas y minúsculas, pero puede escribir fácilmente sus propias versiones que no distinguen entre mayúsculas y minúsculas:

 inline fun <reified T : Enum<T>> enumValueOfIgnoreCase(key: String): T = enumValues<T>().find { it.name.equals(key, ignoreCase = true) } ?: throw IllegalArgumentException("no value for key $key")

Luego, puede escribir, por ejemplo, lo siguiente para obtener el elemento Status Created :

 val status = enumValueOfIgnoreCase<Status>("created")
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda