2012-11-07 69 views
3

以下兩種語法排序在Java中有效。爲什麼都允許,並且是否有首選語法順序?Java中的語法排序

private final static String consultantType = "consultantType"; 
    private static final String consultantId = "consultantId"; 

回答

4

的訂單將被允許的,因爲在限制順序沒有任何價值,所以何苦強加記得程序員虛假排序的負擔?

它絕對不會影響您使用的訂單。選擇一個你喜歡的,持續使用它,然後轉到更有趣的問題。

對於它的價值,我認爲「私人靜態最終」可能更常見。

+0

這是一個好點的,謝謝對答案將接受10分鐘後有效。需求。 P.S問題和問題有區別!這不是一個問題,而是一個準備面試問題的問題,當它發生時:) - 鄧肯 –

8

Java Language Specification section 8.3.1狀態:

如果兩個或多個(不同)字段改性劑出現在字段聲明,習慣上,雖然不是必需的,它們出現在上面示出與相一致的順序FieldModifier的生產。

的生產FieldModifier是:

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

所以你的情況,這是習慣使用private static final,雖然任何順序是有效的。

0

對於Java而言,您並沒有將修飾符的順序設置爲任何不同。因此,「public static」和「static public」的工作方式和語義上相同。

0

任何訂單有效。因此,Checkstyle在遇到以下順序之外的修飾符時會標記警告。請參閱ModifierOrder檢查。

  1. public
  2. protected
  3. private
  4. abstract
  5. static
  6. final
  7. transient
  8. volatile
  9. ​​
  10. native
  11. strictfp