mayoría de los compiladores eliminarán el comunicado. Por ejemplo:
public class Test {
private static final boolean DEBUG = false;
public static void main(String... args) {
if (DEBUG) {
System.out.println("Here I am");
}
}
}
Después de compilar esta clase, a continuación, imprimir una lista de las instrucciones que se producen a través del comando javap
:
javap -c Test
Compiled from "Test.java"
public class Test extends java.lang.Object{
public Test();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."":()V
4: return
public static void main(java.lang.String[]);
Code:
0: return
}
Como se puede ver, hay System.out.println
! :)
"El lenguaje Java no tiene preprocesador" (http://java.sun.com/developer/JDCTechTips/2003/tt0408.html) ¿Está hablando el compilador de Java? –
Gracias por el artículo, no sabía que Java no tiene un preprocesador. Entonces, estoy hablando del compilador. – twolfe18
Es cierto que Java no tiene un preprocesador con las mismas capacidades que C/C++. Sin embargo, tiene procesadores de anotación que ofrecen procesamiento en tiempo de compilación. Ver [Anotaciones Tutorial de Oracle] (http://docs.oracle.com/javase/tutorial/java/javaOO/annotations.html) – KomodoDave