Java no lo obliga a tener una declaración 'predeterminada', pero es una buena práctica tenerla todo el tiempo, incluso si el código nunca se puede alcanzar (en este momento). Aquí hay algunas razones:
Al tener una cláusula predeterminada inalcanzable, le muestra al lector de su código que consideró los valores y sabe lo que está haciendo. También permite futuros cambios, por ejemplo: si se agrega un nuevo valor de enumeración, el interruptor no debe ignorar silenciosamente el nuevo valor; puedes lanzar una Excepción allí o hacer otra cosa.
Para atrapar un valor inesperado (en caso de que no esté activando una enumeración) que se pasa, puede ser mayor o menor de lo que esperaba, por ejemplo.
Para manejar acciones 'predeterminadas', donde los interruptores son para un comportamiento especial. Por ejemplo, una variable puede declararse fuera del conmutador pero no inicializarse y cada caso la inicializa en algo diferente. El valor predeterminado en este caso podría inicializarlo a un valor predeterminado para que el código inmediatamente después del cambio no produzca un error / arroje una excepción.
Incluso si decide no poner nada en el valor predeterminado (sin excepciones, registros, etc.), incluso un comentario para decir que ha considerado que el hecho de que nunca ocurrirá un valor predeterminado puede ayudar a la legibilidad de su código; Pero eso se reduce a la preferencia personal.