Sehat! Saya benar -benar belajar sesuatu yang baru dalam wawancara. Sebuah perusahaan baru saja memberikan tes, tetapi saya sangat terkejut mengapa posisi pengembang web benar -benar mengambil pertanyaan mekanisme refleksi Java, tetapi itu adalah hal yang baik bagi saya untuk belajar dan mempelajari mekanisme refleksi!
Mari kita bicara tentang apa mekanisme refleksi Java. Dalam keadaan berjalan, untuk kelas mana pun, Anda dapat mengetahui semua properti dan metode kelas ini; Untuk objek apa pun, Anda dapat memanggil metode apa pun dari informasi yang diperoleh secara dinamis dan fungsi memanggil metode objek secara dinamis disebut mekanisme refleksi bahasa Java. Fungsi utama: menilai kelas tempat objek mana pun berada saat runtime; Bangun objek kelas mana pun saat runtime; menilai variabel anggota dan metode kelas mana pun saat runtime; Hubungi metode objek apa pun saat runtime; menghasilkan proxy dinamis.
Kemudian tinggalkan contoh lain.
Paket com.beidou.test; impor java.lang.reflect.method; kelas publik dinamis {public static void main (string [] args) melempar pengecualian {class c = dynamic.class; // dapatkan metode (] Metode: c.getDecLaredMethods ();//mendapatkan metode untuk metode () Metode: c.getDecLaredMethods ();//dapatkan metode untuk metode untuk (Metode: Metode: c.getDecLaredMethods ();//dapatkan metode untuk metode untuk (Metode: Metode: c.getDecLaredMethods ();//dapatkan metode untuk metode untuk (Metode: Metode: c.getDecLaredMethods ();//Get the Method untuk Metode (Metode: Metode: C.getDecLaredMethods ();/ Parameter Nama kelas [] parameterTypes = Method.getParameterTypes (); untuk (int i = 0; i <parameterTypes.length; i ++) {string namestring = parameterTypes [i] .getName (); System.out.print ("ParameterType:"+namestring); // Cetak Metode Parameter Jenis} System.out.print ("ReturnType:"+Method.getReturnType ()); System.out.println (); } Objek obj = c.newInstance (); // Dapatkan objek metode, dengan asumsi bahwa parameter metode ini adalah int, string, metode disebut metode getage sage = c.getMethod ("getage", kelas baru [] {int.class, string.class}); // Dapatkan Parameter Objek Objek [] argumen = objek baru [] {integer baru (23), string baru ("ABC")}; // jalankan metode string s = (string) sage.invoke (obj, argumen); System.out.print (s); } getage string publik (usia int, nama string) {return name+":"+usia; }}Mekanisme refleksi Java di atas - metode sederhana dari objek panggilan dinamis adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.