No sé si este fue "el" caso de uso oficial, pero lo siguiente produce una advertencia en Java (que puede producir más errores de compilación si se combina con return
declaraciones, lo que lleva a un código inalcanzable):
while (1 == 2) { // Note that "if" is treated differently
System.out.println("Unreachable code");
}
Sin embargo, esto es legal:
while (isUserAGoat()) {
System.out.println("Unreachable but determined at runtime, not at compile time");
}
Por lo tanto, a menudo me encuentro escribiendo un método de utilidad tonto para la forma más rápida de simular un bloque de código, luego, al completar la depuración, encuentro todas las llamadas, por lo que siempre que la implementación no cambie, esto se puede usar para eso.
JLS señala if (false)
que no activa el "código inalcanzable" por la razón específica de que esto rompería el soporte para los indicadores de depuración, es decir, básicamente este caso de uso (h / t @auselen). ( static final boolean DEBUG = false;
por ejemplo)
He sustituido while
por if
, produciendo un caso de uso más oscura. Yo creo que puede tropezar a su IDE, como Eclipse, con este comportamiento, pero esta edición es de 4 años en el futuro, y no tienen un entorno Eclipse para jugar.