Mengatasi InaccessibleObjectException dalam Java 9: Tidak Dapat Menjadikan Ahli Boleh Diakses
InaccessibleObjectException timbul dalam Java 9 disebabkan oleh enkapsulasi ketat Sistem Modul Platform Java , memberikan akses hanya dalam keadaan tertentu seperti keterlihatan awam dan pakej keboleheksportan.
Punca dan Senario
Pengecualian ini biasanya berlaku apabila:
Menyelesaikan Kes 1: Panggilan Reflektif Ke JDK
Memandangkan modul JDK tidak boleh diubah, penyelesaiannya terletak pada bendera baris arahan yang membuka pakej untuk refleksi. Sebagai contoh, untuk menyelesaikan pengecualian:
java --add-opens java.base/java.lang=ALL-UNNAMED
Menyelesaikan Kes 2: Refleksi Terhadap Kod Aplikasi
Jika kod pemantulan berada dalam modul boleh diedit, pertimbangkan untuk meningkatkannya deskriptor modul:
Pemulihan Lain
Di Java 9 sahaja, anda boleh melumpuhkan perlindungan enkapsulasi dengan:
java --permit-illegal-access
Nota: Bendera ini harus digunakan dengan berhati-hati kerana implikasi keselamatan. Rujuk sumber yang dipautkan untuk mendapatkan butiran lanjut tentang konfigurasi modul dan amalan terbaik.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan InaccessibleObjectException Java 9: Konflik Sistem Refleksi dan Modul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!