Rumah > Java > javaTutorial > Bagaimana untuk Membetulkan InaccessibleObjectException Java 9: ​​JDK dan Penyelesaian Kod Aplikasi?

Bagaimana untuk Membetulkan InaccessibleObjectException Java 9: ​​JDK dan Penyelesaian Kod Aplikasi?

Barbara Streisand
Lepaskan: 2024-12-24 11:30:12
asal
382 orang telah melayarinya

How to Fix Java 9's InaccessibleObjectException:  JDK and Application Code Solutions?

Cara Menyelesaikan InaccessibleObjectException pada Java 9

Apabila menggunakan Java 9, pembangun mungkin menghadapi InaccessibleObjectException. Ia timbul disebabkan oleh pelaksanaan pengkapsulan yang kuat oleh Sistem Modul Platform Java.

Pecahan Mesej Pengecualian:

Unable to make {member} accessible: module {A} does not "opens {package}" to {B}
Salin selepas log masuk

Senario Utama Menyebabkan Pengecualian:

1. Panggilan Reflektif Ke JDK

  • {A} ialah modul JDK (cth., java.base)
  • {ahli} dan {pakej} milik JDK API
  • {B} ialah modul perpustakaan/rangka kerja/aplikasi (selalunya modul tidak dinamakan @...)

2. Refleksi Terhadap Kod Permohonan

  • {A} ialah modul aplikasi
  • {ahli} dan {pakej} tergolong dalam kod aplikasi
  • {B} ialah modul rangka kerja atau modul tanpa nama @...

1. Penyelesaian untuk Panggilan Reflektif Ke JDK:

Gunakan bendera baris arahan berikut untuk membuka pakej yang ditentukan untuk refleksi:

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

Ganti ALL-UNNAMED dengan nama yang dinamakan modul jika berkenaan.

2. Penyelesaian untuk Refleksi Terhadap Kod Aplikasi:

Edit modul {A} untuk membuka pakej dalaman menggunakan salah satu pilihan berikut dalam deskriptor modulnya:

  • eksport {pakej} (menjadikannya boleh diakses secara umum)
  • mengeksport {pakej} ke {B} (menjadikannya boleh diakses hanya kepada B)
  • membuka {package} (menjadikannya boleh diakses pada masa jalan kepada semua kod)
  • membuka {package} kepada {B} (menjadikannya boleh diakses pada masa jalan kepada B sahaja)
  • modul terbuka {A} { ... } (menjadikan keseluruhan modul boleh diakses oleh semua kod pada masa jalan)

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan InaccessibleObjectException Java 9: ​​JDK dan Penyelesaian Kod Aplikasi?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan