javac 不会输出无法访问的已编译代码。使用设置为 常量值的最后一个变量作为 your 的常量值和 .#define
if
#ifdef
您可以使用 javap 来证明无法访问的代码未包含在输出类文件中。例如,请考虑以下代码:
public class Test
{
private static final boolean debug = false;
public static void main(String[] args)
{
if (debug)
{
System.out.println("debug was enabled");
}
else
{
System.out.println("debug was not enabled");
}
}
}
javap -c Test
给出以下输出,指示两个路径中只有一个被编译(并且 if 语句不是):
public static void main(java.lang.String[]);
Code:
0: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #3; //String debug was not enabled
5: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: return