嘿傢伙我是一個總的Java新手,說實話,我不知道如何向你解釋我的問題。繼承靜態最終 - >不可見
所以我有2個類,其中一個是由另一個繼承。
現在我不允許改變超類,否則這會容易得多。
的問題是,在我的子類,我要訪問一個變量(讓我們稱它爲VARIABLE1)
這個變量定義就像在超如下:
static final String variable1 = (String)AccessController.doPrivileged(new PrivilegedAction()
{
public Object run() {
return System.getProperty("variable1", "\n");
}
}
);
現在在我的子類我嘗試以下操作:
this.finalOutputFormat = (replaceKeys(this.format) + variable1);
但它不起作用b因爲日食不斷告訴我變量1 「不可見」。
這幾乎是我得到的唯一的錯誤。
你知道爲什麼變量1對我的子類是不可見的嗎?超類作爲庫被導入,但顯然是在不同的包中。
我希望我對情況的描述不是太混亂,但現在我沒有比這更多的信息。
謝謝。
http://docs.oracle.com/javase/tutorial/java/javaOO /accesscontrol.html – arshajii
如果你的谷歌「Java可見性」,你會發現(可能是第一個結果)這[官方文檔](http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)。如果您閱讀它,您會注意到只有在同一個類中或同一個包中才能訪問具有「無可見性修飾符」的變量。 – Pshemo
謝謝,非常感謝幫助。 – user2653335