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

186
Visualizações
El compilador de Kotlin no advierte sobre una posible excepción de puntero nulo

Tengo este simple kotlin cortado que intenta asignar elementos de la lista a cadenas como esta:

 sealed class MySealedClass class MyClass1 : MySealedClass() class MyClass2 : MySealedClass() fun doTheMapThing(elements: List<MySealedClass>): List<String> { return elements.flatMap { when (it) { is MyClass1 -> listOf("Yeah") is MyClass2 -> null } } }

En flatMap , when se asigna a una lista oa null , por lo que el tipo de retorno efectivo de when es List<String>? . Me sorprendió un poco ver esta compilación sin ningún problema. ¿No debería el compilador de kotlin advertir sobre esto? Cuando extraigo el when de una función, aparece un error de compilación adecuado. ¿Me estoy perdiendo algo aquí o podría ser un error?

Usando kotlin 1.5.31

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

0

Solo para completar: fue un error. La solución se lanzará con Kotlin 1.7.0 . Puede encontrar más detalles al respecto aquí: https://youtrack.jetbrains.com/issue/KT-49658

Si está interesado en obtener aún más detalles, puede encontrar la solución real aquí: https://github.com/JetBrains/kotlin/commit/37d163d417bfe8ecd2e4baea3e5651906c96e150

Lo bueno es que nuestro ejemplo se convirtió en el código de prueba para kotlin:

 fun doTheMapThing1(elements: List<CharSequence>): List<String> { return elements.flatMap { <!TYPE_MISMATCH_WARNING!>when (it) { // NullPointerException is String -> listOf("Yeah") else -> null }<!> } }
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