You can’t use clases en el paquete predeterminado de un paquete con nombre.
(Técnicamente se puede, como se muestra en Sharique Abdullah de answer través de la API de reflexión, pero clases del espacio de nombres sin nombre no son alcance en una declaración importación)
Antes de J2SE 1.4 se podía importar clases del paquete por defecto utilizando una sintaxis como esta:
import Unfinished;
Eso es no longer allowed. Por lo tanto, para acceder a una clase de paquete predeterminada desde dentro de una clase empaquetada, se requiere mover la clase de paquete predeterminada a un paquete propio.
Si tiene acceso a la fuente generada por groovy, se necesita algo de postprocesamiento para mover el archivo a un paquete dedicado y agregar esta directiva de "paquete" al principio.
Actualización 2014: bug 6975015, por JDK7 y JDK8, describen una aún más estricta prohibición de la importación de paquete sin nombre.
El TypeName
debe 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 llamado paquete de, o un miembro de un tipo cuya más externa léxicamente envolvente tipo es un miembro de un paquete llamado, o un error de tiempo de compilación se produce.
Como ya le expliqué a otras personas, el paquete predeterminado es un ciudadano de segunda clase en el mundo de Java. Simplemente no hagas eso. :-) –
Parece que tengo que aprender Groovy (en un proyecto muy limitado) o código en el paquete predeterminado. :-( – Mnementh
@ ChrisJester-Young si es así ¿por qué está allí en primer lugar? Error de diseño? – Pacerier