자바에서 조건부 컴파일 흉내내기

자바에서 C++의 조건부 컴파일 흉내를 내려면 아래와 같이 할 수 있다.

public class test {
 static final boolean DEBUG = false;
 
 public static void main(String[] args) {
  System.out.println("######## 1");
  if (DEBUG) {
   System.out.println("######## 2");
  }
   
  System.out.println("######## 3");
 }
}

 

자바에서 위의 코드를 컴파일하고 나서 생성되는 .class 파일을 디컴파일 해서 보면 아래와 같다.

 

public class test
{
    public test()
    {
    }

    public static void main(String args[])
    {
        System.out.println("######## 1");
        System.out.println("######## 3");
    }

    static final boolean DEBUG = false;
}

 

DEBUG 값이 true 일 경우에는 아래아 같다.

public class test
{
    public test()
    {
    }

    public static void main(String