Rumah >Java >javaTutorial >Pengecualian bahawa kaedah tidak boleh ditemui dalam Java - java.lang.NoSuchMethodException
Dalam pengaturcaraan Java, pengecualian biasa ialah java.lang.NoSuchMethodException, yang bermaksud bahawa definisi kaedah tidak boleh ditemui dalam kelas yang diberikan. Ini biasanya disebabkan oleh beberapa kesilapan biasa atau salah faham.
Pertama sekali, kesilapan yang paling biasa adalah kesilapan ejaan. Di Jawa, nama kaedah adalah sensitif huruf besar-besaran, jadi kesalahan ejaan boleh menyebabkan kaedah tidak dijumpai pengecualian. Sebagai contoh, jika nama kaedah anda ialah "calculateTotal", tetapi anda menulis "CalculateTotal" dalam kod, Java akan membuang pengecualian NoSuchMethodException.
Kedua, jenis dan nombor parameter juga boleh menyebabkan pengecualian. Di Java, kaedah terlebih beban membenarkan berbilang kaedah ditakrifkan dalam kelas yang sama dengan nama yang sama tetapi jenis atau bilangan parameter yang berbeza. Jika anda memberikan jenis atau bilangan parameter yang salah semasa memanggil kaedah, Java tidak akan dapat mencari kaedah yang betul. Sebagai contoh, diberikan kaedah bernama "addNumbers", jika anda memanggilnya menyediakan rentetan dan integer, dan ia sebenarnya memerlukan dua integer sebagai parameter, NoSuchMethodException akan dilemparkan.
Situasi lain ialah kaedah ini mungkin tidak ditakrifkan dalam kod anda. Jika anda cuba memanggil kaedah yang tidak wujud mengikut nama kaedah, Java akan membuang pengecualian NoSuchMethodException. Ini mungkin kaedah yang anda gunakan dalam projek lain, tetapi projek ini tidak dirujuk dalam projek semasa anda.
Akhir sekali, pengubah suai akses juga boleh menyebabkan pengecualian. Jika kaedah anda adalah peribadi, ia hanya boleh diakses daripada kelas ini Jika anda mengakses kaedah daripada kelas atau pakej lain, NoSuchMethodException akan dibuang.
Untuk mengelakkan pengecualian ini, anda perlu memastikan bahawa anda menggunakan nama, jenis parameter dan nombor yang betul semasa memanggil kaedah. Jika anda menemui NoSuchMethodException, anda harus menyemak semula kod anda untuk ralat dan pastikan anda mengeja dan memanggil kaedah dengan betul dalam kod anda.
Selain itu, anda juga boleh menggunakan mekanisme refleksi Java untuk mencipta objek kaedah dan kaedah panggilan secara dinamik, yang akan membolehkan anda mengesan ralat panggilan kaedah pada masa penyusunan, dengan itu mengelakkan pengecualian NoSuchMethodException.
Ringkasnya, NoSuchMethodException ialah salah satu pengecualian biasa dalam Java, biasanya disebabkan oleh ralat ejaan, jenis dan nombor parameter yang salah, kaedah yang tidak ditentukan atau pengubah suai akses yang salah. Menulis kod yang bersih dan mantap serta berhati-hati untuk mengelakkan ralat ini dapat mengelakkan masalah ini dengan berkesan.
Atas ialah kandungan terperinci Pengecualian bahawa kaedah tidak boleh ditemui dalam Java - java.lang.NoSuchMethodException. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!