71

実際、これは完全に理論的な問題です。しかし、興味深いのは、Java 仕様がパッケージ内の大文字を許可しない理由で、次のような書き込みが発生する理由です。

com.mycompany.projname.core.remotefilesystemsynchronization.*

それ以外の

com.myCompanyName.projName.core.remoteFileSystemSynchronization.*
4

3 に答える 3

111

Oracle Docsから直接

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

于 2012-09-21T16:20:45.527 に答える
39

しかし、興味深いのは、Java 仕様がパッケージ内の大文字を許可しない理由で、次のような書き込みが発生する理由です。

仕様上、問題なく使用できます。すべて小文字を使用するのは単なる規則です。

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

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

于 2012-09-21T16:22:16.167 に答える
1

単なる別の規則 - クラス名が常に大文字で始まる必要があるのか​​ 、メソッド名が小文字で始まり、キャメルケースで始まるのかを尋ねる人がいるかもしれません. Javaは、そのように使用することを強制しません。下線を引いた一連の規則が、Java 開発者としての巨大なコミュニティを助け、慣例に従う大多数の人にとって簡単に理解できるコードを作成するのに役立ちます。

そのように明確な理由を割り当てることはできません。それはちょうど良いと感じたものであり、規約を書いている間、当時の大多数のプログラマーによって実践されていました. しかし、はい、規則を書く前にガイドラインは間違いなくそこにあります。気まぐれな作品というわけではありません。ガイドラインは、さまざまな要素を見るだけで、それがクラス、メソッド、またはパッケージであるかどうかを判断できるように作成されており、次の規則を介して、これまで長い間達成されてきました。

于 2016-12-26T14:40:25.233 に答える