


Mengatasi InaccessibleObjectException dalam Java 9: "Tidak dapat menjadikan {ahli} boleh diakses: modul {A} tidak 'membuka {pakej}' kepada {B}"
Di Java 9, pengenalan Sistem Modul Platform membawa pengkapsulan yang lebih ketat. Dunia yang terkapsul ini kadangkala memberikan kita InaccessibleObjectException yang digeruni, terutamanya dalam konteks perpustakaan seperti Spring, Hibernate dan JAXB.
Pelaku di sebalik pengecualian: Pengecualian membayangkan bahawa ahli tertentu ( kaedah/bidang/kelas) sedang disekat daripada akses kerana had sistem modul. Had ini secara amnya memerlukan ahli untuk didedahkan atau pakejnya dieksport. Reflection menambah satu lagi lapisan cabaran, kerana ia cuba memintas kawalan akses ini.
Menangani pengecualian: Untuk mengelakkan pengecualian, sistem modul mesti yakin untuk membenarkan akses kepada elemen terhad . Begini cara anda boleh mendekati perkara ini dalam senario yang berbeza:
Senario 1: Panggilan Reflektif ke JDK
Pengecualian timbul apabila perpustakaan/rangka kerja menggunakan modul JDK melalui refleksi. Di sini, modul JDK tidak boleh diubah suai, jadi bendera baris arahan mula dimainkan.
-
Penyelesaian:
- Gunakan bendera '--add-opens' untuk secara eksplisit membenarkan akses refleksi kepada pakej tertentu dalam JDK modul.
-
Contoh:
- Untuk menangani "...Tidak dapat menjadikan ClassLoader.defineClass boleh diakses..."
- Jalankan JVM dengan: java --add-opens java.base/java.lang=ALL-UNNAMED
Senario 2: Refleksi terhadap Kod Aplikasi
Dalam kes ini, refleksi sedang digunakan dalam satu modul untuk mengakses modul lain. Sebagai pembangun, anda mempunyai lebih kawalan ke atas modul yang diakses di sini.
-
Penyelesaian:
-
Ubah suai deskriptor modul modul yang diakses ( {A}) ke:
- Eksport pakej ke semua modul: eksport {package};
- Eksport pakej secara khusus ke modul mengakses: eksport {package} ke {B};
- Buka pakej kepada semua modul: opens {package};
- Buka pakej secara khusus kepada modul mengakses: membuka {package} kepada {B};
- Buka keseluruhan modul: buka modul {A} { ... };
-
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyelesaikan InaccessibleObjectException Java 9: 'Tidak dapat menjadikan {ahli} boleh diakses'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

JVM'sperformanceiscompetitiveWithotherRuntimes, menawarkanbalanceofspeed, keselamatan, dan produktiviti.1) jvmusesjitcompilationfordynamiciptimizations.2) c menawarkanSnativePerformanceButLacksjvm'sSafetyFeatures.3) pythonissloweSiSiSiSiSiSiS.3) pythonissloweSiSiSiSiSiS.3) pythonissloweSiSiSiSiSiS.3)

Javaachievesplatformindependencethroughthejavavirtualmachine (jvm), membenarkancodetorunonanyplatformwithajvm.1) codeiscompiledintobytecode, notmachine-specificcode.2) byteCodeisinterpretedbybspretedbspretedbspretedbspretedbspretspretedbspretspret

TheJVMisanabstractcomputingmachinecrucialforrunningJavaprogramsduetoitsplatform-independentarchitecture.Itincludes:1)ClassLoaderforloadingclasses,2)RuntimeDataAreafordatastorage,3)ExecutionEnginewithInterpreter,JITCompiler,andGarbageCollectorforbytec

Jvmhasacloserelationshipwiththeosasittranslatesjavabytecodeintomachine-specificinstructions, managesmemory, andhandlesgarbagecollection.Thisrelationshipallowsjavatorunonvariousosenvi,

Pelaksanaan Java "Tulis Sekali, Jalankan Di Mana -mana" disusun menjadi bytecode dan dijalankan pada mesin maya Java (JVM). 1) Tulis kod Java dan menyusunnya ke dalam bytecode. 2) Bytecode berjalan pada mana -mana platform dengan JVM dipasang. 3) Gunakan antara muka asli Java (JNI) untuk mengendalikan fungsi khusus platform. Walaupun terdapat cabaran seperti konsistensi JVM dan penggunaan perpustakaan khusus platform, Wora sangat meningkatkan kecekapan pembangunan dan fleksibiliti penempatan.

Javaachievesplatformindependencethroughthejavavirtualmachine (JVM), membenarkancodetorunondifferentoperatingsystemswithoutmodification.thejvmcompilesjavacodeintoplatform-bebastbytecode, yang mana-mana

Javaispowerfulduetoitsplatformindantrectence, orientednature orientednature, richstandardlibrary, perfanksapabilities, andstrongSecurityfeatures.1) PlatformIndendenceAllowsApplicationStorAnanydeviceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceDeviceViceDeviceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceD

Fungsi Java teratas termasuk: 1) pengaturcaraan berorientasikan objek, menyokong polimorfisme, meningkatkan fleksibiliti kod dan pemeliharaan; 2) mekanisme pengendalian pengecualian, meningkatkan keteguhan kod melalui blok percubaan-catch-finally; 3) pengumpulan sampah, memudahkan pengurusan memori; 4) generik, meningkatkan keselamatan jenis; 5) Ekspresi AMBDA dan pengaturcaraan berfungsi untuk menjadikan kod lebih ringkas dan ekspresif; 6) Perpustakaan standard yang kaya, menyediakan struktur data dan algoritma yang dioptimumkan.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.
