2016-01-19 33 views
2

我第一次加入「最終」的myItem聲明之前得到了這樣的警告:這是什麼意思:「私人」修飾出來的順序與JLS建議

私人領域「myItem」可以作出最後的;它只在 的聲明或構造函數中初始化。

private Item myItem; 

將最終在這之後是警告我得到:

'私人' 修飾出的順序與JLS的建議。

final private Item myItem; 

有誰知道爲什麼我得到這個? 我已經做了一些研究,但似乎無法找到任何解決此問題的方法。

+0

令人驚歎!感謝你們 – Shango

回答

3

通常的順序是privatefinal之前,像這樣:

private final Item myItem; 

的代碼仍然編譯和行爲相同,如果修飾符在不同的順序,但誰使用的人JLS建議的標準順序會認爲你的代碼看起來很奇怪。

6

首先,如果他們在生命中絕對不會改變,那麼製作final只是一個好習慣。這有助於推理對象的可變性。

對於第二個警告,您正在尋找JLS第8.1.1,8.3.1和8.4.1節。

publicprivate應該在static之前,這應該在final之前。

0

此警告的原因是不同類型修飾符的順序,請檢查the answer of this question

對於這種情況,只需在最終之前放置訪問修飾符。