2011-09-13 103 views

回答

10

訪問修飾符的順序無關緊要。他們只需要禮物

對於方法改性劑,所述Java language spec音符,它是這是習慣, 雖然不是必需的,它們出現的順序與上述在生產用於MethodModifier所示 一致。,其是:

(Annotation) public protected private abstract static final synchronized native strictfp 

加成

建議順序字段調節劑(如的JLS 8.3.1):

(Annotation) public protected private static final transient volatile 

建議順序類改性劑(如的JLS 8.1.1) :

(Annotation) public protected private abstract static final strictfp 

(註釋)不是修飾符,它是任何註釋的佔位符。註釋應放在任何其他修飾符之前。

+2

*熔岩*語言!我不能等待它出來:) – Bohemian

+1

看到它,並在應用鏈接ref時修復它 - 無法想象爲什麼我鍵入'l'而不是'J';)(也許是因爲Java是* hot *: D) –

+0

+1:恕我直言,使用一致的順序可以更容易閱讀。 –

0

我不確定規範在這個問題上說了些什麼(如果?),但是其中一個編譯。因此,這歸結於編碼器的偏好!

+0

不一定。有很多編譯風格可以編譯,但與[Sun/Oracle Java編碼約定](http://www.oracle.com/technetwork/java/codeconvtoc-136057.html)相矛盾。 –

0

我在the spec的任一方向都找不到任何偏好。

+1

我確實。看到我的文章鏈接參考。 –

1

有沒有區別,但風格之一。

我喜歡private static final

1

在這種情況下,該規範是§ 8.3 of the JLS§ 8.3.1

 
FieldDeclaration: 
    FieldModifiersoptTypeVariableDeclarators ; 

FieldModifiers: 
    FieldModifier 
    FieldModifiersFieldModifier 

FieldModifier: one of 
    Annotation public protected private 
    static final transient volatile 

正如你可以看到現場改性劑的順序可以是任何你想要的。你甚至可以在那裏混合註釋。

+0

你說得對,看起來他腦海中有田野。 –

1

我最看到的順序是static final而不是final static。 當它不是你的代碼約定的一部分,那麼它是個人喜好。但我會建議總是寫static final,除非你被迫以另一種方式寫它。