Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menyelesaikan Amaran 'Akses Reflektif Haram' di Java 9?
Akses Reflektif Haram di Java 9: Peperiksaan Terperinci
Java 9 memperkenalkan konsep akses reflektif haram, yang mencetuskan zahlreichen pada bagaimana untuk menyelesaikannya Soalan tentang mesej ralat ini. Artikel ini akan menyelidiki sifat akses reflektif yang menyalahi undang-undang, keadaan yang mencetuskan makluman dan kemungkinan penyelesaian.
Sistem modul dalam Java 9 memperkenalkan konsep modulariti#enkapsulasi kuat yang menenangkan, yang merupakan kunci untuk memahami akses reflektif yang menyalahi undang-undang. Akses melalui kod dalam modul kepada kod modul lain dan pakej yang kelihatan dikawal dengan ketat. Walau bagaimanapun, untuk облегчить переход на Java 9, enkapsulasi kuat modul boleh dilonggarkan.
Sistem masa jalan boleh menyediakan operasi berikut:
Konsep akses haram
Jika API pantulan berjaya dipanggil dalam keadaan berikut, akses pantulan "haram" akan dicetuskan:
Mekanisme untuk mencetuskan makluman
Kelonggaran enkapsulasi dalam Java 9 boleh dikawal pada masa penyusunan melalui pilihan permulaan baharu --akses haram. Secara lalai, pilihan ini ditetapkan kepada Benarkan. Dalam mod ini, operasi capaian pertama yang dicerminkan kepada mana-mana pakej sedemikian akan mencetuskan amaran, tetapi tiada amaran lanjut akan dikeluarkan. Amaran ini mengandungi maklumat tentang cara mendayakan amaran selanjutnya.
Pilihan konfigurasi
Pilihan --ilegal-access boleh dikonfigurasikan dalam mod berikut:
Syor Penyahpepijatan dan Pembaikan
Contoh mesej amaran
Mesej amaran yang dikeluarkan apabila operasi capaian reflektif haram dikesan mengikut format berikut:
WARNING: Illegal reflective access by $PERPETRATOR to $VICTIM
di mana:
Langkah Berjaga-jaga
Untuk mengelakkan amaran sedemikian dan memastikan keselamatan masa hadapan, anda perlu memastikan bahawa modul tidak membuat akses reflektif haram ini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyelesaikan Amaran 'Akses Reflektif Haram' di Java 9?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!