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

233
Vistas
Cambiar la coincidencia de patrones para instancias devuelve siempre nulo

Estoy tratando de asignar el resultado de la siguiente instanceof pattern matching switch a la variable languageCodeOfReturnValue .

 String languageCodeOfReturnValue = switch (object){ case PlantGuidePageWrapperDTO plantGuidePageWrapperDTO -> plantGuidePageWrapperDTO.getSeedDetailsDTO().getPageSummaryLanguageCode(); case JournalEntryDetailsDTO journalEntryDetailsDTO -> journalEntryDetailsDTO.getLanguageCode(); case JournalOverviewDTO journalOverviewDTO -> journalOverviewDTO.getPageSummaryLanguageCode(); default -> null; };

Pero este código provoca la siguiente advertencia:

El valor 'cambiar (objeto){ case PlantGuidePageWrapperDTO plantGuidePageWrapperDTO -> plant...' es siempre 'null'

Cuando elimino la cláusula default , la advertencia desaparece, pero luego me queda un error de sintaxis porque el switch no cubre todos los valores posibles. La advertencia desaparece cuando reemplazo null con una cadena vacía '' . Sin embargo, realmente quiero que el valor predeterminado sea null .

Entonces, mi pregunta es doble: primero, ¿por qué el resultado de la declaración de cambio siempre es nulo cuando devuelvo un valor nulo en el caso predeterminado? Y segundo, ¿cuál es entonces la forma correcta de devolver un valor null cuando ninguno de los patrones coincide?

Gracias

EDITAR: estoy usando Intellij IDEA como IDE. ¿Quizás es un error de IDEA inellij?

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

0

Su declaración de cambio parece correcta. Basado únicamente en la advertencia de IntelliJ, parece que todas las declaraciones de casos individuales devuelven un valor nulo. Como menciona cuando cambia el valor predeterminado a una cadena vacía, la advertencia desaparece ya que ahora todas las declaraciones de casos no devuelven valores nulos.

Además, cuando se trata de valores nulos, siempre puede usar valores opcionales.

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