パッケージ名の単語をどのように区切る必要がありますか?次のうち正しいものはどれですか。
com.stackoverflow.my_package
(アンダースコア)com.stackoverflow.my-package
(ハイフン)com.stackoverflow.MyPackage
(キャメルケース)
一般的な基準は何ですか?
パッケージ名の単語をどのように区切る必要がありますか?次のうち正しいものはどれですか。
com.stackoverflow.my_package
(アンダースコア)com.stackoverflow.my-package
(ハイフン)com.stackoverflow.MyPackage
(キャメルケース)一般的な基準は何ですか?
回答:
正式な命名規則のドキュメントでは次のように規定されています。
パッケージ
ユニークなパッケージ名の接頭辞は常にすべて小文字のASCII文字で書かれており、トップレベルドメイン名のいずれかである必要があり、現在
com
、edu
、gov
、mil
、net
、org
、または国を特定する英語2文字コードの1 ISOに指定されています標準3166、1981。パッケージ名の後続のコンポーネントは、組織独自の内部命名規則によって異なります。このような規則では、特定のディレクトリ名コンポーネントが部門、部門、プロジェクト、マシン、またはログイン名であることを指定できます。
例
com.sun.eng
com.apple.quicktime.v2
edu.cmu.cs.bovik.cheese
特に、トップレベルドメインプレフィックスに続くものは、上記のドキュメントでは指定されていないことに注意してください。JLSはまた、次の例を挙げてこれに同意します。
com.sun.sunsoft.DOE
gov.whitehouse.socks.mousefinder
com.JavaSoft.jag.Oak
org.npr.pledge.driver
uk.ac.city.rugby.game
次の抜粋も関連があります。
場合によっては、インターネットドメイン名が有効なパッケージ名ではない可能性があります。これらの状況に対処するための推奨される規則を以下に示します。
- ドメイン名にハイフン、または識別子で使用できないその他の特殊文字が含まれている場合は、アンダースコアに変換します。
- 結果のパッケージ名コンポーネントのいずれかがキーワードの場合、それらにアンダースコアを追加します。
- 結果のパッケージ名コンポーネントのいずれかが数字、または識別子の最初の文字として許可されていないその他の文字で始まる場合は、コンポーネントの前にアンダースコアを付けます。
3つすべてが規則ではありません。
を使用しcom.stackoverflow.mypackage
ます。
パッケージ名は、キャメルの大文字小文字、アンダースコア、ハイフンのパッケージ命名規則に従っていません。
また、Google Java Style Guideでは、まったく同じ(つまりcom.stackoverflow.mypackage
)規則を指定しています。
5.2.1パッケージ名
パッケージ名はすべて小文字で、連続する単語は単純に連結されます(下線なし)。例えば、
com.example.deepspace
、ではありませんcom.example.deepSpace
かcom.example.deep_space
。
誰でもアンダースコア_を使用できます(その場合は問題ありません)
誰もハイフンを使うべきではありません-(その悪い習慣)
パッケージ名に大文字を使用しないでください(悪い習慣)
注:ここでの「悪い習慣」は、技術的にはそれを使用することを許可されていることを意味しますが、従来は書き方が良くありません。
公式の命名規則はそれほど厳密ではありませんcom
。(例では)接頭辞を除いて、キャメルケース表記を「禁止」することもありません。
しかし、私は個人的には大文字やハイフン、さらには数字を避けます。私com.stackoverflow.mypackage
もブラッグボーイが提案したように選びます。
(ハイフン「-」はパッケージ名では無効です)
編集
興味深い-言語仕様には、命名規則についても言いたいことがある。
で章7.7ユニークなパッケージ名は、我々は(キャメルケースの表記はOKになるので)大文字で構成されたパッケージ名の例を参照してください、彼らはアンダースコア(「メリー・ルー」 - >「mary_lou」)によってhyphonationを交換することをお勧めして接頭辞のjava下線付きのキーワード( "com.example.enum"-> "com.example._enum")
パッケージ名の大文字のその他の例については、6.8.1章「パッケージ名」を参照してください。
アンダースコアはパッケージ名で見苦しく見えます。価値があるのは、3つ以上の単語com.company.app.ingresoegresofijo (ingreso/egreso fijo) -> com.company.app.iefijo
でpackage-info.java
構成される名前の場合、イニシャル(例:)を使用してから、パッケージの目的をに文書化することです。
com.stackoverflow.my.package