我想用這樣的事情來實現我的Android代碼的一些調試消息:
private static final boolean DEBUG = false;
if (DEBUG) {
// some code
}
然而,在編譯我不斷收到「非法開始表達」的錯誤。最終的布爾工作,但既不是靜態的也不是私人的工作。
我在方法中聲明瞭DEBUG變量。如果有一種方法可以使這個全局性的,以便在同一個Java文件中的所有內容都將看到它,而不是我需要在每個需要它的方法中聲明它,也會感激。
謝謝!
我想用這樣的事情來實現我的Android代碼的一些調試消息:
private static final boolean DEBUG = false;
if (DEBUG) {
// some code
}
然而,在編譯我不斷收到「非法開始表達」的錯誤。最終的布爾工作,但既不是靜態的也不是私人的工作。
我在方法中聲明瞭DEBUG變量。如果有一種方法可以使這個全局性的,以便在同一個Java文件中的所有內容都將看到它,而不是我需要在每個需要它的方法中聲明它,也會感激。
謝謝!
如果您希望該變量對該類中的所有方法都可見,則必須在類級別聲明該變量。
如果你這樣做的方法裏面如下:
private static final boolean DEBUG = false;
的問題是修飾private
和static
沒有一個方法內不允許。
其實,你應該使用記錄器來達到這種目的。
+1用於推薦使用記錄器 – LanguagesNamedAfterCofee
編號有很多次您不希望將調試代碼編譯到生產代碼中。 DEBUG測試確保它不會。 – RichieHH
只需在類的頂部聲明它(方法之外,但仍然在類中)。
public class MyClass {
private static final boolean DEBUG = false;
...
}
這樣,您就可以從每一個你在MyClass
定義方法訪問DEBUG
。您會收到一個錯誤,因爲方法中定義變量時,你不能使用private
/static
改性劑,只能用類字段使用它們(這同樣適用於public
和protected
- 你可以使用final
任何地方,不過)。
只是把變量放在一個方法之外,一切都可以看到它。 – Serdalis
你不能在Java中創建全局變量,它都需要成爲某個類作用域的一部分。將DEBUG定義爲該類的一個私有靜態最終成員,使該類有權讀取它。這意味着班級中的每個方法都可以讀取成員。 – breezee