Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

500
Visualizações
¿Kotlin le permite asignar un valor personalizado a la enumeración?

Esto arroja el error: Excepción en el hilo "principal" java.lang.IllegalArgumentException: Sin enumeración constante Color.red

 enum class Color(val value: String = "") { RED("red"), YELLOW("yellow"), BLUE("blue") } fun main() { print(Color.valueOf("red")) }

Lo anterior solo funcionará si cambio la declaración de impresión a:

 print(Color.valueOf("RED"))

¿Es posible usar una cadena personalizada para asignar a un valor de enumeración usando valueOf?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Como descubrió, el método enum valueOf() busca por el nombre de la constante de enumeración, no por las propiedades que agregue.

Pero puede agregar fácilmente su propio método de búsqueda, utilizando cualquier criterio que desee:

 enum class Color(val hue: String) { RED("red"), YELLOW("yellow"), BLUE("blue"); companion object { fun forHue(hue: String) = values().find{ it.hue == hue } } }

Una llamada a Color.forHue("red") devuelve la instancia de Color.RED como se esperaba.

(Este es probablemente el enfoque más simple, pero no el más eficiente; vea respuestas como esta ).

over 4 years ago · Santiago Trujillo Relatório

0

No, pero puede escribir su propio método y obtener el valor por iteración, when o mapa.

Además, no puede anular valueOf .

over 4 years ago · Santiago Trujillo Relatório

0

Puede implementar su propio valueOf , que funciona sin distinción entre mayúsculas y minúsculas:

 enum class Color(val value: String = "") { RED("red"), YELLOW("yellow"), BLUE("blue"); companion object { //TODO: gimme a better name fun customValueOf(val: String) = valueOf(val.toUpperCase()) } }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda