No puede usar clases en el paquete predeterminado de un paquete con nombre.
( Técnicamente , puede, como se muestra en la respuesta de Sharique Abdullah a través de la API de reflexión, pero las clases del espacio de nombres sin nombre no están dentro del alcance de una declaración de importación )
Antes de J2SE 1.4, podía importar clases desde el paquete predeterminado usando una sintaxis como esta:
import Unfinished;
Eso ya no está permitido . Entonces, para acceder a una clase de paquete predeterminada desde dentro de una clase empaquetada, es necesario mover la clase de paquete predeterminada a un paquete propio.
Si tiene acceso a la fuente generada por groovy, es necesario un procesamiento posterior para mover el archivo a un paquete dedicado y agregar esta directiva de "paquete" al principio.
Actualización 2014: el error 6975015 , para JDK7 y JDK8, describe una prohibición aún más estricta contra la importación de paquetes sin nombre.
El TypeNamedebe ser el nombre canónico de un tipo de clase, tipo de interfaz, tipo de enumeración, o tipo de anotación.
El tipo debe ser un miembro de un paquete con nombre o un miembro de un tipo cuyo tipo más externo que lo encierra léxicamente es un miembro de un paquete con nombre , o se producirá un error en tiempo de compilación .
Andreas señala en los comentarios :
"¿Por qué [el paquete predeterminado] está ahí en primer lugar? ¿Error de diseño?"
No, es deliberado.
JLS 7.4.2. Paquetes sin nombre dice: "La plataforma Java SE proporciona paquetes sin nombre principalmente para su conveniencia cuando se desarrollan aplicaciones pequeñas o temporales o cuando recién se inicia el desarrollo".