Подтвердить что ты не робот

Почему имя пакета java должно быть строчным?

На самом деле это полностью теоретический вопрос. Но интересно, почему спецификация java не позволяет писать буквы верхнего регистра в пакете и вызывать что-то вроде этого:

com.mycompany.projname.core.remotefilesystemsynchronization.*

вместо

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

Ответ 1

Непосредственно из Oracle Docs

Имена пакетов записываются в нижнем регистре, чтобы избежать конфликтов с имена классов или интерфейсов.

Ответ 2

Но интересно, почему спецификация java не допускает букв верхнего регистра в пакете и вызывает запись примерно так:

Спецификация позволяет это просто отлично. Это всего лишь соглашение о том, чтобы использовать все-нижний регистр.

Как говорит gtgaxiola, это предотвращает конфликты с именами типов... в соглашениях об именах .NET это происходит, что приводит к советам, что вы не называете класс таким же, как его Пространство имен. Конечно, использование пакетов camelCase полностью предотвратило бы столкновение.

Я подозреваю, что реальность такова, что она не была тщательно рассмотрена при создании соглашений об именах пакетов. Лично я редко нахожу, что это проблема. Если я в конечном итоге увижу пакет с одним элементом "remotefilesystemsynchronization", тогда капитализация не является главной причиной, о которой мне было бы интересно:)

Ответ 3

Это просто другое соглашение. Можно спросить, почему имя класса всегда должно начинаться с имени "Капитал" или "Метод" начинается с маленького футляра, а затем с верблюжьей обложкой. Java не заставляет вас использовать этот способ. Его просто, что набор подчеркнутых правил помогает огромному сообществу, поскольку разработчики Java пишут легко понятный код для большинства, которые следуют соглашениям.

Никакая определенная причина не может быть назначена как таковая. Это просто то, что было хорошо при написании конвенции. Но да, рекомендации будут обязательно присутствовать до написания условностей. Я не имею в виду его причудливую работу. Руководящие принципы могут заключаться в том, что просто видя элементы, мы должны быть в состоянии сказать, является ли его класс, метод или пакет и все, что имеет значение, - в соглашениях, которые были достигнуты.