Saya tidak berpikir ini bisa dilakukan. Saya menduga fitur ini sengaja ditinggalkan dari IDE karena tidak dapat digunakan dengan aman seperti refactorings "hapus XXX yang tidak terpakai" lainnya.
Deklarasi yang tidak terpakai yang dicari IDEA (dan AFAIK, NetBeans) adalah untuk anggota pribadi dan variabel lokal: hal-hal yang tidak dapat diakses, bahkan secara dinamis, dari luar kelas atau ruang lingkup itu. (Yah, setidaknya tanpa melakukan hal-hal dengan Refleksi atau peretasan JVM yang tidak seharusnya Anda lakukan.) Tidak peduli apa yang dilakukan kode luar dengan perpustakaan Anda, itu tidak akan menyebabkan hal-hal itu digunakan, karena cakupannya terbatas dan IDE dapat melihat semuanya. Kompilator dapat menentukan ini hanya dengan melihat kode Anda.
Untuk kelas, meskipun mereka tidak memiliki public
akses, mereka dapat direferensikan secara dinamis dengan Class.forName()
, dan ini sebenarnya terjadi dalam kode langsung. Jadi, meskipun tampaknya tidak digunakan dalam kode proyek Anda, mereka mungkin digunakan tergantung pada apa yang Anda atau kode eksternal yang dijalankan oleh pustaka Anda. Jadi, IDE tidak dapat menjamin bahwa menghapus class tersebut tidak akan mengubah perilaku yang dapat diamati secara eksternal.
Itulah mengapa menurut saya IDEA tidak memberikan perilaku ini: mungkin memberikan pengguna harapan keamanan yang salah, dan menghapusnya bukanlah pemfaktoran ulang yang aman.