¿Por qué la inicialización de una cadena en una instrucción if parece diferente que en una instrucción switch? [duplicar]

Esta pregunta ya tiene una respuesta aquí :
Respuesta 1

En su primer ejemplo, no hay una ruta a través del código que no asigne un valor a 'temporada'. En el segundo ejemplo, el caso predeterminado no asigna un valor, por lo que la última impresión ("Mayo es ...") se puede ejecutar con un valor no inicializado.

Respuesta: 2

En su if/ elsecódigo, hay una garantía de que la variable seasonobtendrá un valor. Es decir, la elsedeclaración.

Tu switchcódigo no lo tiene. Mire lo que sucederá con la variable seasonsi el valor dado para el mes es 13: no obtendrá un valor y permanecerá sin inicializar.

Respuesta: 3

Quiero omitir las violaciones de PMD para todos los archivos en los paquetes que siguen ** / dto / Q [AZ] ** por ejemplo, la violación de PMD se debe omitir para com.abc.foo.bar.dto.QResult.java pero no para com.abc. foo.bar.dto.Question.java ...

Necesito una estructura / solución de datos java que cumpla con estos requisitos. ¿Qué se adapta mejor a estos? 1) El orden de inserción del objeto debe mantenerse 2) Los objetos deben ser únicos (Estos son objetos de base de datos que son ...

¿Por qué puedo tener un método para recibir una lista con comodines: public processGenerics (List <? Extend User> users) {...} pero no puedo crear una instancia de esa misma Lista de manera similar? Lista <? se extiende ...

Quiero ordenar Collection of Objects, que no implementa una interfaz comparable o de comparación. El problema es que no puedo cambiar el diseño de la clase porque solo tengo un archivo .class (sin código fuente). Cómo ...