ventajas que desventajas características caracteristicas java compiler-construction warnings compiler-warnings suppress-warnings

desventajas - que es java



Cómo suprimir las advertencias del compilador de Java para funciones específicas (5)

¿Es la anotación @SuppressWarnings ( javadoc ) lo que estás buscando?

Por ejemplo:

@SuppressWarnings("unchecked") public void someMethod(...) { ... }

Siempre nos enseñan a asegurarnos de usar un descanso en las declaraciones de cambio para evitar el fracaso .

El compilador de Java advierte sobre estas situaciones para ayudarnos a no cometer errores triviales (pero drásticos).

Sin embargo, he utilizado el caso fallido como una característica (no tenemos que entrar aquí, pero ofrece una solución muy elegante).

Sin embargo, el compilador arroja cantidades masivas de advertencias que pueden oscurecer las advertencias que necesito saber. Sé cómo puedo cambiar el compilador para ignorar TODAS las advertencias fallidas, pero me gustaría implementar esto método por método para evitar perder un lugar donde no tenía la intención de que ocurriera el fracaso.

¿Algunas ideas?


Si realmente, realmente debes hacer esto, y estás seguro de que no estás cometiendo un error, mira la anotación @SuppressWarnings . Supongo que en tu caso necesitas

@SuppressWarnings("fallthrough")


Para completar otra respuesta sobre SuppressWarnings :

@SuppressWarnings("fallthrough")

Intentar suprimir todas las advertencias fallidas a nivel del compilador es algo malo: como has explicado, los casos en los que necesitas pasar la advertencia están claramente identificados. Por lo tanto, debe escribirse explícitamente en el código (la @SuppressWarnings("fallthrough") con un comentario opcional es bienvenida). Si lo hace, seguirá teniendo la advertencia de caída si realmente olvida un descanso en algún lugar de su código.


Puede crear una estructura de instrucciones ''if'' en lugar del interruptor. Puede que no sea tan agradable a la vista, pero tampoco lo es la supresión de advertencia.


@SuppressWarnings("fallthrough")

Java siempre ha seguido el estilo C de las sentencias switch, donde necesita salir explícitamente de un switch a menos que simplemente desee pasar y ejecutar el código en el caso siguiente. Esto puede ser peligroso, por supuesto, y los errores de este tipo pueden ser muy difíciles de rastrear. En el siguiente ejemplo, el caso 1 no tiene un salto:

@SuppressWarnings("fallthrough") public void fallthroughTest(int i) { switch (i) { case 1: // Execute both 1 and 2 case 2: // Execute only 1 } }