每次我用Java編寫方法的關鍵字多於public void
時,我每次用另一種方式寫它。有時「static public void
」有時「public static void
」等Java中的修飾符關鍵字順序
這些關鍵字的最佳順序(最佳實踐)是什麼?
[abstract/static
] [final
] [] [public/private/protected
] [result_type
] ???
每次我用Java編寫方法的關鍵字多於public void
時,我每次用另一種方式寫它。有時「static public void
」有時「public static void
」等Java中的修飾符關鍵字順序
這些關鍵字的最佳順序(最佳實踐)是什麼?
[abstract/static
] [final
] [] [public/private/protected
] [result_type
] ???
最好的順序是其餘代碼使用的順序。
是的,但是你不能否認'public static final'比'公共最終靜態「。有一些不成文的慣例。 – 2012-04-24 13:43:30
的確,在Javaland中有一些非常明確的約定,例如使用infixCaps風格的命名方法。值得學習,並遵循它們。 – ewernli 2012-04-24 13:53:38
像這樣:
public static final synchronized void calculate()
'公共靜態最終同步無效計算()';-) – Betlista 2012-04-24 13:42:20
@Betlista-謝謝,完成:) – 2012-04-24 13:42:51
從理論上講,如果你說的公共靜態最終或最終靜態公共不要緊,但是如果按照通常的慣例,其他人也能看懂你的代碼更容易。這裏是首選訂單:
[公共|保護|私人]
靜態
抽象
同步
[瞬時|揮發性]
最終
天然
strictfp
[INT |長|字符串| class |枚舉|接口等]
http://checkstyle.sourceforge.net/config_modifier.html – 2014-09-15 11:52:20
@YoushaAleayoub在提供的JLS部分,它沒有說任何東西關於訂單限制,就像'這是編譯時錯誤,如果你不按照上面的順序。':) – 2014-09-16 08:12:33
我認爲靜態和抽象的順序交換根據http://docs.oracle.com/javase/specs /jls/se7/html/jls-8.html#jls-8.4.3。去編輯它.. – 2015-03-04 20:16:44
這是我個人的選擇
public static final void method() { }
public void method() { }
public abstract void method() { }
這也似乎符合Java文檔
「最佳」將遵循Java Coding Style Guide,各國在6.2 (方法聲明):
public static final synchronized long methodName()
throws ArithmeticException, InterruptedException {
static int count;
}
鏈接目前沒有指向有用的頁面,只是爲了oracle的java主頁。 – CoatedMoose 2013-03-24 19:44:28
@CoatedMoose固定鏈接 – ewernli 2013-03-25 09:39:10
是的,有一個標準的排序。
如果使用IDE,您可以在首選項設置它格式化你的代碼對你來說,也就是在Eclipse - >爪哇 - >編輯 - >保存操作,你可以勾選「格式化源代碼」
然後你不必再擔心它。無論何時保存文件,如果整個項目都使用此項,它將自動完成,那麼對於整個項目而言,代碼的格式都是相同的。
這不會重新排序修飾符AFAIK。 請參閱https://bugs.eclipse.org/bugs/show_bug.cgi?id=322494 – dforce 2017-03-30 08:24:40
修飾符的自定義使用順序在Java Language Specification中提到(因此不需要有自己的意見;-))例如,爲method modifiers,你會發現下面的定義(摘錄):
MethodModifiers: MethodModifier MethodModifiers MethodModifier MethodModifier: one of Annotation public protected private abstract static final synchronized native strictfp
如果兩個或多個(不同的)方法修飾符出現在方法聲明中,這是習慣,但並不是必需的,它們出現的順序與MethodModifier生產中上面顯示的一致。
您會在指定使用修飾符的其他幾處找到此句,例如, here用於字段修飾符。
(這主要是從我的另一個答案here複製)。
聽起來好像得到了引導到http我的一個問題://programmers.stackexchange.com/...但是個人我使用'[public/private/protected] [final/abstract/static] [synchronized] [type] func()'... – 2012-04-24 13:41:30