O uso do pacote padrão do Java é uma prática ruim?

O uso do pacote padrão do Java é uma prática ruim?

Sim. Idealmente, os nomes de pacotes devem ser globalmente exclusivos, para evitar colisões de nomenclatura. Usar o pacote padrão quebra essa convenção. Também é impossível importar uma class do pacote padrão.

Por que existem pacotes sem nome, se é uma idéia tão ruim? Do JLS §7.4.2 :

Pacotes sem nome são fornecidos pela plataforma Java principalmente por conveniência ao desenvolver aplicativos pequenos ou temporários ou ao iniciar o desenvolvimento.

Existem problemas em muitos níveis diferentes:

  • você não pode importar classs no pacote padrão de classs que não são
  • você obterá problemas de carregamento de class se tentar resolver o pacote padrão em vários artefatos
  • você não pode mais usar o escopo padrão e protegido como você normalmente pode
  • não há distinção óbvia entre o seu código e outro código

Sim. Como outras respostas afirmaram, você não pode carregar classs do pacote padrão.

Veja as respostas do SO:

Como importar uma class do pacote padrão
Como acessar classs java no pacote padrão?

No entanto, log4j requer que a configuração esteja localizada no pacote padrão. Esta é a única coisa que é razoável manter lá.

Edit: Como Sean Patrick Floyd e Michael apontaram nos comentários, você pode colocar qualquer arquivo de configuração no pacote padrão. Obrigado a vocês dois por apontar isso para mim.

Sim. O problema é que não é possível importar classs do pacote padrão.