Rumah > Java > javaTutorial > InaccessibleObjectException Java 9: ​​Bagaimana untuk Menyelesaikan 'Tidak Dapat Menjadikan {Ahli} Boleh Diakses'?

InaccessibleObjectException Java 9: ​​Bagaimana untuk Menyelesaikan 'Tidak Dapat Menjadikan {Ahli} Boleh Diakses'?

DDD
Lepaskan: 2025-01-03 07:58:39
asal
824 orang telah melayarinya

Java 9's InaccessibleObjectException: How to Resolve

Mengatasi InaccessibleObjectException Java 9: ​​"Tidak Dapat Membuat {Ahli} Boleh Diakses"

Memahami Isu

Java 9 memperkenalkan Sistem Modul Platform, yang dipertingkatkan enkapsulasi dengan menyekat akses kepada elemen tertentu. Apabila percubaan dibuat untuk memintas sekatan ini, InaccessibleObjectException dilemparkan. Mesej ralat menentukan ahli yang sedang diakses, modul yang menyekat akses dan modul yang cuba mengaksesnya.

Menyelesaikan Pengecualian

Penyelesaian berbeza-beza bergantung pada senario yang menyebabkan isu.

1. Panggilan Refleksi Ke JDK

Masalah: Pustaka atau rangka kerja menggunakan refleksi untuk mengakses elemen dalam modul JDK.

Penyelesaian: Gunakan bendera baris arahan untuk membuka pakej khusus untuk refleksi.

java --add-opens {jdk-module}/{package}={accessing-module}
Salin selepas log masuk

Untuk contoh:

java --add-opens java.base/java.lang=ALL-UNNAMED
Salin selepas log masuk

2. Refleksi Terhadap Kod Aplikasi

Masalah: Refleksi sedang digunakan untuk mengakses elemen dalam modul aplikasi.

Penyelesaian: Ubah suai aplikasi deskriptor modul untuk membuka pakej atau modul untuk akses.

Pilihan:

  • Eksport pakej:

    • eksport {pakej }
  • Eksport pakej ke modul tertentu:

    • mengeksport {package} ke {accessing-module}
  • Buka pakej:

    • dibuka {package}
  • Buka pakej ke modul tertentu:

    • membuka {package} ke {accessing-module }
  • Buka keseluruhan modul:

    • modul terbuka {module-to-open} {...}

Pilihan yang sesuai bergantung pada tahap akses dan keterlihatan diperlukan.

Atas ialah kandungan terperinci InaccessibleObjectException Java 9: ​​Bagaimana untuk Menyelesaikan 'Tidak Dapat Menjadikan {Ahli} Boleh Diakses'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan