La plupart des compilateurs élimineront cette déclaration. Par exemple :
public class Test {
private static final boolean DEBUG = false;
public static void main(String... args) {
if (DEBUG) {
System.out.println("Here I am");
}
}
}
Après avoir compilé cette classe, j'imprime ensuite une liste des instructions produites via la fonction javap
commandement :
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
}
Comme vous pouvez le voir, aucun System.out.println
! :)