La maggior parte dei compilatori eliminerà la dichiarazione. Per esempio:
public class Test {
private static final boolean DEBUG = false;
public static void main(String... args) {
if (DEBUG) {
System.out.println("Here I am");
}
}
}
Dopo aver compilato questa classe, ho poi stampare un elenco delle istruzioni prodotte tramite il 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
}
Come si può vedere, non System.out.println
! :)
fonte
2009-08-27 23:34:02
"Il linguaggio Java non ha alcun preprocessore" (http://java.sun.com/developer/JDCTechTips/2003/tt0408.html) Stai parlando del compilatore Java? –
Grazie per l'articolo, non sapevo che Java non avesse un preprocessore. Quindi sto solo parlando del compilatore. – twolfe18
È vero che Java non ha un preprocessore con le stesse funzionalità di C/C++. Tuttavia ha processori di annotazione che offrono elaborazione in fase di compilazione. Vedi [Oracle's Annotations Tutorial] (http://docs.oracle.com/javase/tutorial/java/javaOO/annotations.html) – KomodoDave