Você não pode usar classes no pacote padrão de um pacote nomeado.
( Tecnicamente, você pode, conforme mostrado na resposta de Sharique Abdullah por meio da API de reflexão, mas as classes do namespace não nomeado não estão no escopo em uma declaração de importação )
Antes do J2SE 1.4, você podia importar classes do pacote padrão usando uma sintaxe como esta:
import Unfinished;
Isso não é mais permitido . Portanto, para acessar uma classe de pacote padrão de dentro de uma classe em pacote, é necessário mover a classe de pacote padrão para um pacote próprio.
Se você tiver acesso à fonte gerada pelo groovy, algum pós-processamento é necessário para mover o arquivo para um pacote dedicado e adicionar esta diretiva "pacote" em seu início.
Atualização de 2014: bug 6975015 , para JDK7 e JDK8, descreve uma proibição ainda mais rígida contra importação de pacote sem nome.
A TypeName
deve ser o nome canônico de um tipo de classe, tipo de interface, tipo de enum, ou tipo de anotação.
O tipo deve ser um membro de um pacote nomeado ou um membro de um tipo cujo tipo mais externo lexicalmente envolvente é um membro de um pacote nomeado , ou ocorrerá um erro em tempo de compilação .
Andreas aponta nos comentários :
"por que [o pacote padrão] está lá em primeiro lugar? erro de design?"
Não, é deliberado.
JLS 7.4.2. Pacotes sem nome diz: "Pacotes sem nome são fornecidos pela plataforma Java SE principalmente por conveniência ao desenvolver aplicativos pequenos ou temporários ou apenas quando o desenvolvimento está começando".