Algunas veces, cuando está depurando, tiene un fragmento de código inalcanzable. ¿Hay alguna forma de suprimir la advertencia?Java: ¿Cómo al código inalcanzable @SuppressWarnings?
Respuesta
La única forma de hacerlo en cualquier compilador es @SupressWarnings("all")
.
Si está utilizando Eclipse, intente @SuppressWarnings("unused")
.
Esta no es la única manera en absoluto. Ver mi respuesta (http://stackoverflow.com/a/6025389/8946). –
@SoftwareMonkey su enfoque todavía causa advertencias en Eclipse e IntelliJ. Esta es la única solución que funciona entre compiladores e IDEs. –
Como Cletus tells us,
que depende de su IDE o compilador.
Dicho esto, al menos para Eclipse, no hay una manera de hacer esto. Con mi configuración de Eclipse, el código inalcanzable causa un error en tiempo de compilación, no solo una advertencia. También tenga en cuenta que esto es diferente de "código muerto", p.
if (false)
{
// dead code here
}
para el que Eclipse (de forma predeterminada) emite una advertencia, no es un error.
Java tiene soporte (primitivo) para la depuración de esta manera simple if
en constantes booleanas no generará tales advertencias (y, de hecho, cuando la evaluación es falsa, el compilador eliminará todo el bloque condicionado). Por lo que puede hacer:
if(false) {
// code you don't want to run
}
Del mismo modo, si usted está insertando temporalmente una terminación anticipada para la depuración, es posible hacerlo de esta manera:
if(true) { return blah; }
o
if(true) { throw new RuntimeException("Blow Up!"); }
y observe que la especificación de Java declara explícitamente que los bloques condicionales constantemente falsos se eliminan en tiempo de compilación, y IIRC, los verdaderos que son verdaderos tienen la condición eliminada. Esto incluye por ejemplo:
public class Debug
{
static public final boolean ON=false;
}
...
if(Debug.ON) {
...
}
javac no genera advertencias para 'if (false)', pero sí el compilador Eclipse. –
@ Daniel: Eso es desafortunado; no debería ser para un simple 'if (false)' o cuando la única variable de condición es 'static final boolean' establecida en' false'. –
Me gusta la advertencia porque me recuerda volver atrás y hacer algo sobre el código inactivo, pero IIRC se convirtió en error en una versión anterior de Eclipse, así que recurriría a cosas como 'if (Math.abs (0) = = 0) '. –
De acuerdo con la Java Language Specification:
Es un error en tiempo de compilación si una declaración no puede ser ejecutada porque es inalcanzable.
En ocasiones, puede convertir código inalcanzable en código muerto (por ejemplo, el cuerpo de if (false) {...}
). Pero ser un error es parte de la definición del lenguaje.
- 1. cómo designar código Python inalcanzable
- 2. C# Código inalcanzable detectado
- 3. El código es heurísticamente inalcanzable
- 4. VB error de código inalcanzable/advertencia
- 5. @SuppressWarnings ("serial")
- 6. ¿Por qué hay un código inalcanzable aquí?
- 7. código inalcanzable detectado en caso de declaración
- 8. Java: lista completa de parámetros de @SuppressWarnings (...) (en Netbeans)?
- 9. @SuppressWarnings innecesarios ("sin usar")
- 10. Unsupported @SuppressWarnings ("PMD.DoNotCallSystemExit")
- 11. todos los valores de SuppressWarnings?
- 12. Código inalcanzable en la llave de cierre del constructor
- 13. ¿Cuál es el uso de @SuppressWarnings
- 14. ¿Hay un equivalente a SuppressWarnings en Scala?
- 15. errores de compilación en tiempo y código inalcanzable
- 16. El compilador Scala dice código inalcanzable, ¿por qué?
- 17. ¿Puedo hacer una anotación Java que "amplíe" @SuppressWarnings?
- 18. ¿Hay un equivalente a java @SuppressWarnings en JSP
- 19. Eclipse - @SuppressWarnings ("javadoc") no funciona
- 20. En java, ¿cuándo se vuelve inalcanzable un objeto?
- 21. Simulando el host inalcanzable: cómo lograrlo/implementarlo
- 22. Código de bytes al código fuente de Java
- 23. ¿Llamar al código de Scala desde Java?
- 24. Herramienta de código abierto para encontrar el código de C# inalcanzable/no utilizado
- 25. XCode4 agregar Repository Host inalcanzable?
- 26. La excepción inalcanzable, pt 2
- 27. NoSuchMethodError al llamar código java de Scala
- 28. ¿Llamar al código C# de Java?
- 29. ¿Cómo puedo llamar al código .NET de Java?
- 30. ¿qué significa alcanzable/inalcanzable en git?
Probablemente no, el código inalcanzable suele ser un signo de un método mal codificado ... ¿podría publicarlo? Debe ser una forma de refactorizarlo. –
Parece que agregó una devolución anticipada, o posiblemente un 'if (falso) ...', para la depuración. Nada de malo con eso. –
¿por qué suprimir la advertencia durante la depuración? la advertencia está ahí para recordarle que elimine el código después de que termine de depurar: IMO es mejor * no * para suprimir las advertencias relacionadas con la depuración. La supresión tiene sentido para * advertencias conocidas e innecesarias * en * código de producción *. – vaxquis