Является ли использование пакета Java по умолчанию плохой практикой?
Является ли использование пакета Java по умолчанию плохой практикой?
Ответ 1
Да, это так. В идеале имена пакетов должны быть глобально уникальными, чтобы избежать коллизий имен. Использование пакета по умолчанию нарушает это соглашение. Также невозможно импортировать класс из пакета по умолчанию.
Почему безымянные пакеты существуют вообще, если это такая плохая идея? Из JLS & sect; 7.4.2:
Безвизовые пакеты предоставляются платформой Java главным образом для удобства при разработке небольших или временных приложений или когда только начинается разработка.
Ответ 2
Существуют проблемы на разных уровнях:
- вы не можете импортировать классы в пакет по умолчанию из классов, которые не являются
- вы получите проблемы с загрузкой классов, если попытаетесь разрешить пакет по умолчанию в нескольких артефактах.
- вы больше не можете использовать стандартную и защищенную область, как обычно,
- нет четкого различия между вашим кодом и другим кодом.
Ответ 3
Да, это так. Как указывали другие ответы, вы не можете загружать классы из пакета по умолчанию.
См. ответы SO:
Как импортировать класс из пакета по умолчанию
Как получить доступ к java-классам в пакете по умолчанию?
Однако log4j требует, чтобы конфигурация была расположена в пакете по умолчанию. Это единственное, что разумно держать там.
Изменить:. Как замечают Шон Патрик Флойд и Майкл в комментариях, вы можете поместить любые файлы конфигурации в пакет по умолчанию. Спасибо вам обоим, указав это мне.
Ответ 4
Да, это так. Проблема в том, что невозможно импортировать классы из пакета по умолчанию.