2012-11-22 24 views
0

在C/C++中,我們可以使用#ifndef RELEASE #endif包括調試源,如一些額外的測試和/或控制檯打印和等的Java調試/開發模式

有沒有辦法做到這一點在Java或任何similiar選擇嗎?

+0

做到這一點將是一個不好的破解。日誌記錄應該通過具有不同日誌級別的可配置日誌記錄機制完成。測試應該在單元測試中完成。 – Kai

回答

4

您可以添加static final boolean變量,然後使用簡單的if語句。

如果編譯器可以確定表達式是false那麼它不會將條件編譯到您的代碼中。

+0

+1今天我學到了很酷的東西。這對任何版本的編譯器都適用嗎?我的意思是它在JLS – Jerome

+0

至少Oracle/Sun編譯器是這樣做的。我不知道自哪個版本,但至少最近編譯器(> 1.4)做到了。 –

+1

@Jerome它不在JLS中,因爲它只是一個編譯器優化。 –