<p>I'm working now together with others in a grails project. I have to write some Java-classes. But I need access to an searchable object created with groovy. It seems, that this object has to be placed in the default-package. </p>

<p>My question is: <strong>Is there a way to access this object in the default-package from a Java-class in a named package?</strong></p>

You can’t use
classes in the default package from a named package.
(
Technically
you can, as shown in Sharique Abdullah's
answer
through reflection API,
but
classes from the unnamed namespace are
not in scope
in an
import declaration
)
Prior to J2SE 1.4 you could import classes from the default package using a syntax like this:
```
```
import Unfinished;
```
```
That's
no longer allowed
. So to access a default package class from within a packaged class requires moving the default package class into a package of its own.
If you have access to the source generated by groovy, some post-processing is needed to move the file into a dedicated package and add this "package" directive at its beginning.
Update 2014:
bug 6975015
, for JDK7 and JDK8, describe an even
stricter
prohibition against import from unnamed package.
The
```
TypeName
```
must be the canonical name of a class type, interface type, enum type, or annotation type.
The type must be either a member of a
named package
, or a member of a type whose outermost lexically enclosing type is a member of a
named package
,
or a compile-time error occurs
.
Andreas
points out
in the comments
:
"why is [the default package] there in the first place? design error?"
No, it's deliberate.
JLS 7.4.2. Unnamed Packages
says: "Unnamed packages are provided by the Java SE platform principally for convenience when developing small or temporary applications or when just beginning development".