[筆記]Conditional Compilation in Java

C/C++的專案裡面經常使用的Debug技巧之一,就是使用前處理器 #define #ifdef #endif 來夾住Debug程式碼。程式開發階段盡量詳細的捕捉可能出問題的情形並印出Debug訊息或中斷是非常重要的,但是這些處理”幾乎不會發生的情形”的程式碼當然會影響程式效能。使用#ifdef就可以直接在編譯時決定要生成release版本或是debug版本,非常的方便。最近在做一個小型的J2ME專案,因為確實是小型,沒有#ifdef可用也就算了。不過事後想想,Java這種常用在大型專案的語言沒有類似的功能不就麻煩大了?於是立刻來請教google大神。大神回答了!大神說,確實Java沒有真正的條件編譯可以用,不過要模仿#ifdef的功能是可以的。簡單說,Java 編譯器為了最佳化,只要發現條件式的值為false,編譯時就會把該區段忽略。所以只要定義一個 public final boolean 變數就可以了。例如:

public interface Debug
{
    public final boolean ENABLE = true;
}

public class Hello
{
    blahblahblah;
    if(Debug.ENABLE)
    {
        System.out.println("This is debug message.");
    }
}

萬事大吉可喜可賀。おめでたいおめでたい♪

One thought on “[筆記]Conditional Compilation in Java

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>