Isu Keserasian Java 8 dengan LogManager: Memahami Ralat Penyelesaian "AnnotatedElement"
Apabila mengalihkan projek Java daripada JDK 7 kepada JDK 8, anda mungkin menghadapi ralat pelik yang melibatkan penggunaan LogManager. Khususnya, pengisytiharan "log Logger statik peribadi = LogManager.getLogger(Class1.class);" dalam kelas anda akan mencetuskan ralat berikut:
The type java.lang.reflect.AnnotatedElement cannot be resolved. It is indirectly referenced from required .class files
Masalah Dasar
Memperkenalkan JDK 8 disertakan dengan fail kelas khusus Java 8, yang mengandungi ciri yang lebih baharu seperti kaedah lalai dan kaedah antara muka statik. Untuk berjaya menyusun kod sumber Java yang merujuk ciri baharu ini, anda mesti meningkatkan IDE anda atau mana-mana alat/rangka kerja pemprosesan kod lain yang menampilkan pengkompilnya sendiri (seperti Eclipse) kepada versi yang serasi dengan Java 8.
Peranan Pengkompil
Pengkompil memainkan peranan penting dalam memuatkan dan memproses fail kelas baharu yang dikaitkan dengan Java 8. Dengan mengemas kini pengkompil anda, anda memastikan ia dapat mentafsir fail kelas ini dengan betul dan, seterusnya, susun kod anda yang merujuknya.
Gelagat Eclipse
Adalah penting untuk ambil perhatian bahawa Eclipse mungkin tidak membezakan dengan jelas antara kelas yang tidak dapat ditemui berbanding kelas yang dihadapinya semasa cuba membaca. Oleh itu, apabila ia melaporkan "«nama kelas» tidak boleh diselesaikan," ia mungkin merujuk kepada mana-mana senario.
Membetulkan Isu
Penyelesaiannya mudah: kemas kini anda IDE atau alat kepada versi terkini dengan sokongan Java 8. Dengan berbuat demikian, anda menyediakan pengkompil anda dengan keupayaan yang diperlukan untuk memahami fail kelas Java 8 dan berjaya menyusun kod anda.
Atas ialah kandungan terperinci Mengapa JDK 8 Melemparkan Ralat Resolusi \'AnnotatedElement\' dengan LogManager?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!