web-dev-qa-db-ja.com

なぜJavaパッケージ名は小文字にする必要がありますか?

実際、これは完全に理論的な質問です。しかし興味深いのは、Java仕様ではパッケージ内の大文字を許可せず、次のような記述を行う理由です。

com.mycompany.projname.core.remotefilesystemsynchronization.*

の代わりに

com.myCompanyName.projName.core.remoteFileSystemSynchronization.*
54

Oracle Docs から直接

パッケージ名は、クラスまたはインターフェースの名前との競合を避けるために、すべて小文字で記述されています。

93
gtgaxiola

しかし興味深いのは、Java仕様ではパッケージ内の大文字を許可せず、次のような記述を行う理由です。

仕様allowsで問題ありません。すべて小文字を使用するのはconventionのみです。

Gtgaxiolaが言うように、これは.NET命名規則で型名との競合を回避します。このdoesが発生し、 クラスの名前空間と同じ名前を付けないでください 。もちろん、camelCaseパッケージを使用すると、衝突を完全に回避できます。

現実には、パッケージの命名規則を作成する際に完全に考慮されていなかったと思われます。個人的にそれが問題になることはめったにありません-「remotefilesystemsynchronization」の1つの要素を含むパッケージが表示された場合、大文字小文字の区別は私が心配する主なものではありません:)

31
Jon Skeet

ちょうど別の規則-クラス名が常に大文字で始まる必要がある理由を尋ねるか、メソッド名を小文字で始めてからキャメルケースにすることがあります。 Java does n't強制的にその方法を使用します。その下線付きのルールのセットは、巨大なコミュニティを助けるJava開発者慣習に従っている大多数の人にわかりやすいコードを書く。

そのような明確な理由を割り当てることはできません。規則を書いている間、まさに感じたものgood。しかし、規約を書く前に、確かにガイドラインがあります。私はその気まぐれな仕事を意味するものではありません。ガイドラインは、要素を見るだけで、そのクラス、メソッド、パッケージ、および重要なことはすべて、それが達成された規約で​​あるかどうかを判断できるはずです。

0
nanosoft