web-dev-qa-db-ger.com

Warum sollte der Name des Java-Pakets in Kleinbuchstaben angegeben werden?

Eigentlich ist das eine völlig theoretische Frage. Aber es ist interessant, warum die Java-Spezifikation keine Buchstaben in Großbuchstaben im Paket zulässt und so etwas wie das Schreiben verursacht:

com.mycompany.projname.core.remotefilesystemsynchronization.*

anstatt

com.myCompanyName.projName.core.remoteFileSystemSynchronization.*
45

Direkt aus Oracle Docs

Paketnamen werden in Kleinbuchstaben geschrieben, um Konflikte mit der .__ zu vermeiden. Namen von Klassen oder Schnittstellen.

81
gtgaxiola

Aber es ist interessant, warum die Java-Spezifikation keine Buchstaben in Großbuchstaben im Paket zulässt und so etwas wie das Schreiben verursacht:

Die Spezifikation erlaubt es ist gut so. Es ist nur eine Konvention, um nur Kleinbuchstaben zu verwenden.

Wie gtgaxiola sagt, vermeidet dies Konflikte mit Typnamen ... In .NET-Namenskonventionen geschieht dies does, was dazu führt, dass Sie eine Klasse nicht genauso benennen wie ihr Namespace . Die Verwendung von camelCase-Paketen würde die Kollision natürlich völlig vermeiden.

Ich vermute, dass die Realität bei der Erstellung der Paketbenennungskonventionen nicht gründlich berücksichtigt wurde. Ich persönlich finde es selten ein Problem - wenn ich am Ende ein Paket mit einem Element "Remotefilesystemsynchronisation" sehe, dann ist die Großschreibung nicht die Hauptsache, die mir Sorgen bereitet :)

29
Jon Skeet

Es ist nur eine andere Konvention - Man könnte fragen, warum der Klassenname immer mit Capital beginnen muss oder der Methodenname mit einem kleinen Fall und dann mit einem Kamelgehäuse beginnt. Java nicht zwingt Sie, auf diese Weise zu verwenden. Es ist nur so, dass ein Satz unterstrichener Regeln einer großen Community als Java-Entwickler dabei hilft, leicht verständlichen Code für die Mehrheit zu schreiben, die Konventionen befolgt.

Kein bestimmter Grund kann als solcher zugeordnet werden. Es war genau das, was sich gut anfühlte, als er die Convention schrieb. Aber ja, Richtlinien wären definitiv vorhanden, bevor Konventionen geschrieben werden. Ich meine nicht, dass es eine wunderliche Arbeit ist. Richtlinien könnten sein, dass wir allein durch das Anzeigen von Elementen in der Lage sein sollten, zu erkennen, ob die Klasse, Methode oder das Paket und alles, worauf es ankommt, in den Konventionen ist.

0
nanosoft