Bạn không thể sử dụng các lớp trong gói mặc định từ một gói đã đặt tên.
( Về mặt kỹ thuật, bạn có thể, như được hiển thị trong câu trả lời của Sharique Abdullah thông qua API phản chiếu, nhưng các lớp từ không gian tên chưa được đặt tên không nằm trong phạm vi trong khai báo nhập )
Trước J2SE 1.4, bạn có thể nhập các lớp từ gói mặc định bằng cú pháp như sau:
import Unfinished;
Điều đó không còn được phép nữa . Vì vậy, để truy cập một lớp gói mặc định từ bên trong một lớp được đóng gói, yêu cầu chuyển lớp gói mặc định thành một gói của riêng nó.
Nếu bạn có quyền truy cập vào nguồn được tạo bởi groovy, thì cần phải xử lý hậu kỳ để chuyển tệp vào một gói chuyên dụng và thêm chỉ thị "gói" này vào đầu.
Cập nhật 2014: lỗi 6975015 , cho JDK7 và JDK8, mô tả một lệnh cấm thậm chí nghiêm ngặt hơn đối với việc nhập từ gói không có tên.
Tên TypeName
phải là tên chuẩn của một loại lớp, loại giao diện, loại enum hoặc loại chú thích.
Các loại phải là thành viên của một gói có tên , hoặc một thành viên của một loại mà ngoài cùng lexically kèm theo loại là thành viên của một gói có tên , hoặc một thời gian biên dịch lỗi xảy ra .
Andreas chỉ ra trong các bình luận :
"tại sao [gói mặc định] lại ở đó ngay từ đầu? lỗi thiết kế?"
Không, đó là cố ý.
JLS 7.4.2. Gói không tên cho biết: "Các gói không tên được cung cấp bởi nền tảng Java SE chủ yếu để thuận tiện khi phát triển các ứng dụng nhỏ hoặc tạm thời hoặc khi mới bắt đầu phát triển".