[英]class attributes declaration, order of the attributes' properties (final, private, static, type)
我正在嘗試查找有關訂購類屬性屬性的最佳方法的文檔,例如private / protected / public,final,static,type。
我會發一個例子來看看我的意思。
class A {
public final static int FOO = 3;
final public static int FOO = 3;
}
好吧,我假設attrbiute類型(int,String,char)在屬性名稱之前。
我真正懷疑的是當我嘗試定位靜態,最終和v
語言規范只說修飾符必須在類型之前 ,因此int
是最后的。 修飾符包括類型參數,注釋,訪問修飾符(私有,受保護,公共), static
, final
, synchronized
, strictfp
, volatile
, transient
,它們(來自“允許編譯器的內容”)可以按任何順序出現。
前幾天我做了谷歌搜索, static final
比final static
更頻繁,所以這有助於命令他們:-)
我認為通常這種修飾符的順序是最常見的:
static
final
transient
(僅適用於字段) volatile
(僅適用於變量) synchronized
(僅適用於方法) 我從來沒有使用strictfp
或native
,但我想我會把它們synchronized
。
您可以將默認順序作為Java語言規范中顯示的順序。 http://java.sun.com/docs/books/jvms/second_edition/html/Concepts.doc.html#29882
當我關心時,我按照checkstyle的ModifierOrder檢查順序[1](引用鏈接頁面):
檢查修飾符的順序是否符合Java語言規范第8.1.1,8.3.1和8.4.3節中的建議。 正確的順序是:
- 上市
- 保護
- 私人的
- 抽象
- 靜態的
- 最后
- 短暫的
- 揮發物
- 同步
- 本地人
- strictfp
回答了你自己的問題:
private / protected / public,static,final,type
字段(類,方法)修飾符的順序無關緊要。 當我們查看方法簽名時,它們只是標志。
因此,如果您想使用固定訂單,則只是為了便於閱讀。 如果您始終在編譯單元中使用相同的順序,那么您的代碼看起來會更好。
但同樣,順序對字節代碼沒有影響。 忘記微優化;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.