4 Dec 2008, 8:28pm
電腦
by lachesis

1 comment

[筆記]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.");
    }
}

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

> <~嗯、好厉害的。

我一直都很喜欢你的Blog的。

*name

*e-mail

web site

leave a comment