命名約定

包名稱

  • 軟體包名稱應全部為小寫,不帶下劃線或其他特殊字元。
  • 包名稱以開發者公司網址的反向許可權部分開頭。這部分可以遵循專案/程式結構相關的包子結構。
  • 不要使用複數形式。遵循標準 API 的慣例,例如 java.lang.annotation 而不是 java.lang.annotations
  • 示例: com.yourcompany.widget.buttoncom.yourcompany.core.api

類,介面和列舉名稱

  • 類和列舉名稱通常應該是名詞。
  • 介面名稱通常應該是以…才能結尾的名詞或形容詞。
  • 使用大寫的每個單詞中的第一個字母的混合大小寫(即 CamelCase )。
  • 匹配正規表示式^[A-Z][a-zA-Z0-9]*$
  • 使用整個單詞並避免使用縮寫,除非縮寫比長形式更廣泛使用。
  • 如果縮寫是較長類名的一部分,則將縮寫格式化為單詞。
  • 例如: ArrayListBigIntegerArrayIndexOutOfBoundsExceptionIterable

方法名稱

方法名稱通常應為動詞或其他操作描述

  • 它們應該匹配正規表示式^[a-z][a-zA-Z0-9]*$
  • 使用小寫的第一個字母的混合大小寫。
  • 例子: toStringhashCode

變數

變數名稱應為大小寫混合,第一個字母為小寫

  • 匹配正規表示式^[a-z][a-zA-Z0-9]*$
  • 進一步的建議: 變數
  • 示例: elementscurrentIndex

型別變數

對於涉及很少型別變數的簡單情況,請使用單個大寫字母。

  • 匹配正規表示式^[A-Z][0-9]?$
  • 如果一個字母比另一個字母更具描述性(例如 KV 用於對映中的鍵和值,或者 R 用於函式返回型別),請使用該字母,否則使用 T
  • 對於單字母型別變數變得混亂的複雜情況,請使用以全部大寫字母書寫的較長名稱,並使用下劃線(_)來分隔單詞。
  • 示例: TVSRC_VERTEX

常量

常量(static final 欄位,其內容是不可變的,按語言規則或按慣例)應使用全部大寫字母和下劃線(_)命名以分隔單詞。

  • 匹配正規表示式^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$
  • 示例: BUFFER_SIZEMAX_LEVEL

關於命名的其他指南

  • 避免在外部作用域中隱藏/遮蔽方法,變數和型別變數。
  • 讓名稱的詳細程度與範圍的大小相關聯。 (例如,對大型類的欄位使用描述性名稱,為本地短期變數使用簡要名稱。)
  • 在命名公共靜態成員時,如果你認為識別符號將被靜態匯入,請將該識別符號設定為自描述。
  • 進一步閱讀: 命名部分 (在官方 Java 風格指南中)

來源: Oracle 的 Java 風格指南