Refleksi, seperti namanya, ialah kefungsian API(Antaramuka pengaturcaraan aplikasi) dalam JAVA yang melaluinya contoh masa jalan kelas boleh diperiksa sepenuhnya. Ia adalah sebahagian daripada pakej Java.lang.reflect. Pakej ini perlu diimport pada permulaan program, dan kemudian fungsi digunakan untuk memahami fungsi "refleksi." Mana-mana tingkah laku kelas boleh dikaji; metadata boleh diekstrak atau diubah suai menggunakan API refleksi dalam masa jalan.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Sintaks fungsi biasa di bawah API refleksi untuk mengekstrak maklumat kelas disediakan di bawah:
Kelas refleksi menggunakan kaedah berbeza yang ditakrifkan dalam pakej Java.lang.reflect untuk mengekstrak maklumat kelas. Maklumat tentang kelas boleh diekstrak menggunakan kaedah getClass(), Pembina menggunakan kaedah getConstructors() dan kaedah menggunakan kaedah getMethods(). Kaedah ini ditakrifkan dalam API refleksi tetapi mengembalikan maklumat kelas, termasuk kaedah, pembina dan banyak lagi. Reflection API digunakan dalam program JAVA, IDE (Persekitaran pembangunan bersepadu) seperti eclipse, Netbeans. Ini boleh difahami dengan baik dengan bantuan contoh yang disediakan dalam bahagian di bawah.
Contoh yang berbeza dinyatakan di bawah:
Kod:
//package test; import java.lang.Class; public class test{ public static void main(String args[]){ Class<Boolean> c1 = boolean.class; System.out.println("Here, the class name is: "+c1.getName()); Class<test> c2 = test.class; System.out.println("This is another instance of class is used to derive class name : "+c2.getName()); } }
Output:
Penjelasan: Sila semak contoh yang disediakan di atas. Ini mempunyai pakej yang mengandungi semua kelas bernama "ujian." Pakej ujian mempunyai kelas "ujian diisytiharkan." Kelas ini juga mengandungi kaedah utama dari mana pelaksanaan program akan bermula. Kelas “Kelas
Dalam baris seterusnya, daripada menggunakan jenis data primitif, "kelas" jenis data yang ditentukan pengguna bernama "ujian" diambil kira untuk mengekstrak data. “Kelas
Kod:
//package test; import java.lang.Class; class Simple{} public class test{ public static void main(String args[]){ try{ Class<?> c=Class.<em>forName</em>("Simple"); System.<em>out</em>.println("The result is: "+c.isInterface()); }catch(Exception e){System.<em>out</em>.println(e);} } }
Output:
Penjelasan: Dalam contoh di atas, satu pakej dicipta bernama" ujian," seperti yang dibuat dalam contoh nombor 1 sebelumnya. Pakej ini mengandungi nama kelas "Mudah", yang bukan kelas utama . Kelas utama di sini ialah kelas "ujian" yang mengandungi kaedah utama dari mana pelaksanaan program akan bermula. “Kelas >” ialah pengecam kelas pantulan yang diwujudkan melalui objek bernama "c" di sini. Kemudian objek ini digunakan untuk mengeluarkan penunjuk keputusan (Benar atau salah) bagi fungsi yang dinamakan "isInaterface." Fungsi ini menarik dalam kelas sebagai parameter; dalam kes ini, kelas yang ditarik masuk sebagai parameter ialah kelas "Mudah". Kelas ini bukan antara muka, jadi "palsu" dikembalikan sebagai hasil dalam skrin output. Untuk menggunakan fungsi ini, objek kelas “c” telah digunakan.
Beberapa kelebihan menggunakan refleksi dalam JAVA disenaraikan di bawah:
Refleksi JAVA memungkinkan untuk mengintrospeksi kelas, antara muka, kaedah dan banyak lagi tanpa mengetahui nama kelas sama sekali. Ini semua dilakukan semasa masa penyusunan. Ini dianggap sebagai salah satu sifat JAVA yang paling berkuasa kerana ini boleh digunakan untuk mencipta contoh kelas, dan ahli persendirian kelas boleh diekstrak menggunakan ini. Pembangun boleh menggunakan ini semasa masa jalan dan untuk pemetaan objek pangkalan data juga.
Atas ialah kandungan terperinci Refleksi dalam JAVA. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!