Rumah > Java > javaTutorial > teks badan

Apakah prinsip dan fungsi refleksi Java?

PHPz
Lepaskan: 2023-04-26 23:31:06
ke hadapan
816 orang telah melayarinya

1. Proses memanggil refleksi

(1) Fasa persediaan : Muatkan semua kelas semasa penyusunan dan simpan meta-maklumat setiap kelas ke Class In objek kelas, setiap kelas sepadan dengan objek Kelas

(2) Dapatkan objek Kelas : panggil x.class/x.getClass()/Class.forName() untuk mendapatkan Kelas x Objek clz (lapisan bawah kaedah ini adalah semua kaedah asli, yang ditulis di bahagian bawah JVM. Kami tidak akan meneroka lapisan bawah JVM buat masa ini)

(3) Lakukan operasi refleksi sebenar: Dapatkan objek Medan/Kaedah/Pembina melalui objek clz untuk operasi selanjutnya

2 Dapatkan kelas kelas

Kepada dapatkan maklumat kelas melalui refleksi, anda mesti terlebih dahulu Dapatkan contoh kelas Kelas yang sepadan dengan kelas Contoh kelas Kelas mewakili kelas dan antara muka aplikasi Java yang sedang berjalan. Kelas Kelas tidak mempunyai pembina awam Objek kelas Kelas berada dalam aliran bait binari (biasanya fail .class, yang juga boleh diperoleh melalui rangkaian atau pakej zip) dengan memanggil defineClass pemuat kelas apabila ia dimuatkan oleh kaedah JVM () untuk dibina.

/**
 * Instances of the class {@code Class} represent classes and
 * interfaces in a running Java application.
 * {@code Class} has no public constructor. Instead {@code Class}
 * objects are constructed automatically by the Java Virtual Machine as classes
 * are loaded and by calls to the {@code defineClass} method in the class
 * loader.
*/
 
public final class Class<T> implements java.io.Serializable,GenericDeclaration,Type,AnnotatedElement {
    ......
}
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah prinsip dan fungsi refleksi Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan