Rumah Java javaTutorial Prinsip asas dan kaedah panggilan refleksi Java

Prinsip asas dan kaedah panggilan refleksi Java

Dec 23, 2023 am 09:01 AM
refleksi prinsip doa kaedah

. Melalui refleksi, kita boleh mencipta objek secara dinamik, kaedah panggilan, dapatkan/tetapkan sifat, dsb. pada masa jalan, yang meningkatkan fleksibiliti dan kebolehskalaan program. Artikel ini akan memperkenalkan prinsip asas refleksi Java dan memberikan contoh kod khusus.

Prinsip asas dan kaedah panggilan refleksi Java1. Prinsip asas refleksi

Pelaksanaan refleksi Java adalah berdasarkan kelas Kelas, yang merupakan kelas teras refleksi Java. Setiap kelas Java akan menjana objek Kelas yang sepadan selepas kompilasi maklumat Kelas boleh diperolehi melalui objek Kelas, dan operasi kelas boleh dilakukan melalui maklumat kelas.

Refleksi Java terutamanya mempunyai kelas teras dan antara muka berikut:


Kelas kelas: mewakili jenis kelas, yang merupakan titik masuk refleksi Java.


Kelas medan: mewakili pembolehubah ahli kelas.

Kelas kaedah: mewakili kaedah ahli kelas.

    Kelas pembina: Mewakili kaedah pembina kelas.
  1. Prinsip asas refleksi Java adalah seperti berikut: Pertama, dapatkan objek Kelas yang sepadan melalui nama kelas yang layak sepenuhnya atau kaedah getClass() objek kemudian, melalui beberapa kaedah kelas Kelas, seperti getFields(), getMethods(), dsb. Dapatkan Medan, Kaedah, Pembina dan objek lain akhirnya, lakukan operasi khusus melalui objek ini, seperti mendapatkan/menetapkan nilai harta, kaedah memanggil, mencipta objek, dsb.
  2. 2. Kaedah panggilan Refleksi
  3. 2.1 Dapatkan objek Kelas
  4. Objek Kelas yang sepadan boleh diperolehi melalui nama kelas yang layak sepenuhnya atau kaedah getClass() objek.
Kod sampel adalah seperti berikut:

// 通过类的全限定名获取Class对象
Class<?> clazz1 = Class.forName("com.example.User");

// 通过对象的getClass()方法获取Class对象
User user = new User();
Class<?> clazz2 = user.getClass();
Salin selepas log masuk

2.2 Mendapatkan nilai atribut

Nilai atribut objek boleh diperoleh melalui kaedah get() kelas Medan.

Kod sampel adalah seperti berikut:

// 获取public属性值
Field field = clazz.getDeclaredField("name");
String name = (String) field.get(user);

// 获取private属性值
Field privateField = clazz.getDeclaredField("age");
privateField.setAccessible(true); // 设置private属性的访问权限
int age = (int) privateField.get(user);
Salin selepas log masuk

2.3 Menetapkan nilai atribut

Nilai atribut objek boleh ditetapkan melalui kaedah set() kelas Medan.


Kod sampel adalah seperti berikut:

// 设置public属性值
Field field = clazz.getDeclaredField("name");
field.set(user, "Tom");

// 设置private属性值
Field privateField = clazz.getDeclaredField("age");
privateField.setAccessible(true); // 设置private属性的访问权限
privateField.set(user, 20);
Salin selepas log masuk

2.4 Kaedah panggilan

Kaedah objek boleh dipanggil melalui kaedah invoke() kelas Kaedah.


Kod sampel adalah seperti berikut:

// 调用无参方法
Method method1 = clazz.getDeclaredMethod("sayHello");
method1.invoke(user);

// 调用带参方法
Method method2 = clazz.getDeclaredMethod("sayHi", String.class);
method2.invoke(user, "Jack");
Salin selepas log masuk

2.5 Mencipta objek

Objek boleh dibuat melalui kaedah newInstance() kelas Pembina.


Kod sampel adalah seperti berikut:

Constructor<?> constructor = clazz.getDeclaredConstructor(String.class, int.class);
User newUser = (User) constructor.newInstance("Lucy", 25);
Salin selepas log masuk

Ringkasan:

Refleksi Java ialah ciri berkuasa dalam bahasa Java, yang boleh memperoleh maklumat kelas secara dinamik dan mengendalikan ahli kelas pada masa jalan. Prinsip asas refleksi adalah untuk mendapatkan maklumat kelas melalui kelas Kelas dan melaksanakan operasi khusus melalui Medan, Kaedah, Pembina dan objek lain. Dalam aplikasi sebenar, kami boleh menggunakan mekanisme refleksi untuk merealisasikan pelbagai keperluan dinamik dan meningkatkan fleksibiliti dan skalabiliti program.

Atas ialah kandungan terperinci Prinsip asas dan kaedah panggilan refleksi Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Prinsip asas dan kaedah panggilan refleksi Java Prinsip asas dan kaedah panggilan refleksi Java Dec 23, 2023 am 09:01 AM

Prinsip asas refleksi Java dan kaedah panggilan Prakata: Refleksi Java ialah ciri penting dalam bahasa Java Ia membolehkan program mendapatkan maklumat kelas secara dinamik dan mengendalikan ahli kelas pada masa jalan. Melalui refleksi, kita boleh mencipta objek secara dinamik, kaedah panggilan, dapatkan/tetapkan sifat, dsb. pada masa jalan, yang meningkatkan fleksibiliti dan kebolehskalaan program. Artikel ini akan memperkenalkan prinsip asas refleksi Java dan memberikan contoh kod khusus. 1. Prinsip asas refleksi Pelaksanaan refleksi Java adalah berdasarkan kelas Kelas

Prinsip refleksi dan senario aplikasi dalam bahasa Go Prinsip refleksi dan senario aplikasi dalam bahasa Go Jun 01, 2023 am 08:30 AM

Bahasa Go dilengkapi dengan mekanisme refleksi, yang merupakan salah satu ciri terbesarnya. Reflection menyediakan bahasa Go dengan cara untuk menyemak pembolehubah dan kaedah panggilan pada masa jalan, yang membolehkan kami memahami dan memanipulasi data dalam atur cara dengan cara yang sama dan bersatu tanpa mengambil berat tentang jenis data tertentu Ini adalah pengaturcaraan Masalah biasa bahasa. Dalam artikel ini, kita akan menyelidiki prinsip refleksi dan senario aplikasi dalam bahasa Go. Apakah refleksi? Dalam medan komputer, refleksi merujuk kepada pengesanan jenis data secara dinamik atau beroperasi pada data pada masa jalan.

Cara menggunakan bahasa Go untuk amalan refleksi kod Cara menggunakan bahasa Go untuk amalan refleksi kod Aug 01, 2023 pm 10:58 PM

Cara menggunakan bahasa Go untuk pengenalan amalan refleksi kod: Dalam bahasa Go, refleksi ialah mekanisme berkuasa yang membolehkan kami menyemak maklumat jenis dan memanipulasi objek secara dinamik semasa program sedang berjalan. Melalui refleksi, kita boleh memanggil kaedah, medan akses, mencipta contoh, dsb. tanpa mengetahui jenis tertentu. Artikel ini akan memperkenalkan cara menggunakan mekanisme pantulan bahasa Go untuk amalan kod dan memberikan contoh kod yang sepadan. Asas Refleksi Refleksi merujuk kepada keupayaan untuk memeriksa pembolehubah, kategori, kaedah dan antara muka apabila program sedang berjalan. Dalam bahasa Go, refleksi ialah

Cara menggunakan refleksi dan metadata untuk mengendalikan penjanaan dan sambungan kod dalam C# dan penyelesaian Cara menggunakan refleksi dan metadata untuk mengendalikan penjanaan dan sambungan kod dalam C# dan penyelesaian Oct 09, 2023 am 10:48 AM

Cara menggunakan refleksi dan metadata untuk mengendalikan penjanaan dan sambungan kod dan penyelesaian dalam C#, contoh kod khusus diperlukan Tajuk: Kaedah dan penyelesaian untuk menggunakan refleksi dan metadata untuk menjana dan melanjutkan kod dalam C# Pengenalan: Refleksi dan metadata dalam pembangunan C# Ia adalah alat yang sangat berkuasa yang boleh membantu kami mencapai fungsi menjana dan memanjangkan kod secara dinamik. Artikel ini menerangkan cara menggunakan pantulan dan metadata untuk mengendalikan penjanaan dan sambungan kod serta menyediakan contoh kod khusus. 1. Gunakan refleksi untuk menjana kod Melalui refleksi, kami boleh memuatkan dan menyemak secara dinamik pada masa jalan.

Apakah prinsip dan senario penggunaan penghias dan pengurus konteks dalam Python? Apakah prinsip dan senario penggunaan penghias dan pengurus konteks dalam Python? Oct 18, 2023 am 10:41 AM

Penghias dan pengurus konteks dalam Python ialah dua ciri yang sangat berguna yang boleh membantu kami mengatur dan mengurus kod dengan lebih baik serta meningkatkan kebolehgunaan semula kod. Artikel ini akan memperkenalkan prinsip dan senario penggunaan masing-masing penghias dan pengurus konteks, dan memberikan contoh kod khusus. 1. Prinsip dan senario penggunaan penghias: Penghias ialah cara untuk menambah fungsi tambahan pada fungsi tanpa mengubah takrifan fungsi asal. Ia sebenarnya adalah fungsi yang menerima fungsi yang dihias sebagai input dan mengembalikan fungsi yang dibalut. menghias

Penjelasan terperinci tentang aplikasi penutupan, penjana dan teknologi pantulan yang menyeluruh dalam PHP Penjelasan terperinci tentang aplikasi penutupan, penjana dan teknologi pantulan yang menyeluruh dalam PHP Sep 13, 2023 pm 12:13 PM

Penjelasan terperinci tentang aplikasi penutupan, penjana dan teknologi pantulan yang menyeluruh dalam PHP Pengenalan: Memandangkan kerumitan aplikasi web terus meningkat, pembangun memerlukan teknologi yang lebih maju dan fleksibel untuk menangani cabaran ini. PHP ialah bahasa skrip sebelah pelayan yang popular yang menawarkan banyak ciri berkuasa, termasuk penutupan, penjana dan refleksi. Artikel ini akan memperkenalkan aplikasi komprehensif teknologi ini secara terperinci dan memberikan contoh kod khusus. 1. Penutupan: Penutupan merujuk kepada fungsi yang ditakrifkan di dalam fungsi dan boleh mengakses bahagian luarnya

Menyahmistikan Refleksi Java: Meneroka Misteri Mendalam Cara Ia Berfungsi Menyahmistikan Refleksi Java: Meneroka Misteri Mendalam Cara Ia Berfungsi Dec 23, 2023 pm 12:49 PM

Menyahsulit Refleksi Java: Untuk menerokai prinsip di sebaliknya, contoh kod khusus diperlukan Pengenalan: Dalam pengaturcaraan Java, refleksi (Reflection) ialah mekanisme yang berkuasa dan fleksibel yang membolehkan kami memeriksa kelas, antara muka, medan dan kaedah secara dinamik pada masa jalan. mereka boleh dipanggil dan dimanipulasi walaupun tanpa mengetahui kelas konkrit. Artikel ini akan menyelidiki prinsip di sebalik refleksi Java dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menggunakan refleksi dengan lebih baik. Apakah refleksi? Ringkasnya, refleksi adalah kaedah mendapatkan dan memanipulasi

Tiga cara untuk mempelajari kemahiran refleksi Java Tiga cara untuk mempelajari kemahiran refleksi Java Jan 03, 2024 pm 02:00 PM

Ketahui lebih lanjut tentang tiga teknik refleksi Java Pengenalan: Refleksi Java ialah teknik pengaturcaraan berkuasa yang boleh memperoleh maklumat berkaitan kelas secara dinamik dan mengendalikan ahli kelas pada masa jalan. Artikel ini akan memperkenalkan tiga teknik lanjutan refleksi Java dan memberikan contoh kod khusus. Mendapatkan maklumat lengkap kelas Melalui refleksi Java, kita boleh mendapatkan maklumat lengkap kelas, termasuk nama kelas, kelas induk, antara muka yang dilaksanakan, kaedah, medan, dll. Berikut ialah contoh kod untuk mendapatkan maklumat lengkap tentang kelas: importjava.lang

See all articles