Anda tidak dapat menggunakan kelas dalam paket default dari paket bernama.
( Secara teknis Anda bisa, seperti yang ditunjukkan dalam jawaban Sharique Abdullah melalui API refleksi, tetapi kelas dari namespace yang tidak disebutkan namanya tidak dalam cakupan dalam deklarasi impor )
Sebelum J2SE 1.4 Anda dapat mengimpor kelas dari paket default menggunakan sintaks seperti ini:
import Unfinished;
Itu tidak lagi diizinkan . Jadi untuk mengakses kelas paket default dari dalam kelas yang dikemas memerlukan pemindahan kelas paket default ke dalam paketnya sendiri.
Jika Anda memiliki akses ke sumber yang dihasilkan oleh groovy, beberapa pemrosesan pasca diperlukan untuk memindahkan file ke dalam paket khusus dan menambahkan perintah "paket" ini di awal.
Pembaruan 2014: bug 6975015 , untuk JDK7 dan JDK8, jelaskan larangan yang lebih ketat terhadap impor dari paket yang tidak disebutkan namanya.
The TypeName
harus nama kanonik jenis kelas, jenis antarmuka, jenis enum, atau jenis anotasi.
Tipe harus salah satu anggota dari paket bernama , atau anggota tipe yang terluar tipe melampirkan secara leksikal adalah anggota dari paket bernama , atau kesalahan waktu kompilasi terjadi .
Andreas menunjukkan dalam komentarnya :
"mengapa [paket default] ada di tempat pertama? kesalahan desain?"
Tidak, itu disengaja.
JLS 7.4.2. Paket Tanpa Nama menyatakan: "Paket tanpa nama disediakan oleh platform Java SE terutama untuk kenyamanan saat mengembangkan aplikasi kecil atau sementara atau saat baru memulai pengembangan".