Вы не можете использовать классы в пакете по умолчанию из именованного пакета.
( Технически вы можете, как показано на Sharique Абдулла ответа через Reflection API, но классы от безымянного пространства имен находятся не в объеме в декларации импорта )
До J2SE 1.4 вы могли импортировать классы из пакета по умолчанию, используя такой синтаксис:
import Unfinished;
Это больше не разрешено . Таким образом, для доступа к классу пакета по умолчанию из упакованного класса необходимо переместить класс пакета по умолчанию в собственный пакет.
Если у вас есть доступ к источнику, сгенерированному Groovy, потребуется некоторая пост-обработка, чтобы переместить файл в специальный пакет и добавить эту директиву «package» в его начало.
Обновление 2014: ошибка 6975015 , для JDK7 и JDK8, описывает еще более строгий запрет на импорт из безымянного пакета.
TypeNameДолжно быть каноническое имя типа класса, тип интерфейса, перечислимого типа, или типа аннотаций.
Тип должен быть либо членом именованного пакета , либо членом типа, самый внешний лексически включающий тип которого является членом именованного пакета , в противном случае возникает ошибка времени компиляции .
Андреас отмечает в комментариях :
"почему [пакет по умолчанию] там вообще? ошибка дизайна?"
Нет, это умышленно.
JLS 7.4.2. Безымянный пакет говорит: «Безымянный пакет предоставляется платформой Java SE в основном для удобства при разработке небольших или временных приложений или когда только начинается разработка».