Mekanisme pantulan membolehkan program memanggil kaedah pada masa jalan. Langkah-langkahnya adalah seperti berikut: dapatkan objek kelas dan dapatkan objek kaedah. Panggil kaedah, menghantar contoh objek dan parameter. Gunakan refleksi untuk memanggil kaedah getName() kelas Pekerja dan kembalikan "John Doe".
Mekanisme refleksi Java memanggil kaedah
Mekanisme refleksi Java membenarkan program untuk mendapatkan dan mengubah suai maklumat dan tingkah laku kelas pada masa jalankan. Ia digunakan secara meluas dalam rangka kerja, ujian dan alat penyahpepijatan.
Gunakan kaedah refleksi untuk memanggil
Anda boleh menggunakan kaedah refleksi untuk memanggil dengan mengikuti langkah berikut:
Class.forName()
untuk mendapatkan Objek kelas kelas. Class.forName()
获取类的 Class 对象。getMethod()
或 getMethods()
获取方法的 Method 对象。invoke()
方法调用方法,传入对象实例和参数(如果有)。语法
Method method = Class.forName("ClassName").getMethod("methodName", parameterTypes); Object result = method.invoke(objectInstance, parameters);
其中:
ClassName
是要调用的类名。methodName
是要调用的方法名。parameterTypes
是方法参数类型的数组。objectInstance
是要调用方法的对象实例(如果方法是非静态方法)。parameters
是要传递给方法的参数数组。实战案例
假设有一个 Employee
类,其中有以下方法:
public class Employee { public String getName() { return "John Doe"; } }
现在,让我们使用反射机制调用 getName()
方法:
Class<?> employeeClass = Class.forName("Employee"); Method getNameMethod = employeeClass.getMethod("getName"); String name = (String) getNameMethod.invoke(new Employee()); System.out.println(name); // 输出:John Doe
在这个示例中,我们首先获取 Employee
类的 Class 对象。然后,我们获取 getName()
方法的 Method 对象。最后,我们创建一个 Employee
对象的实例并使用反射调用 getName()
getMethod()
atau getMethods()
untuk mendapatkan objek Method bagi kaedah tersebut. 🎜🎜Kaedah panggilan: 🎜 Gunakan kaedah invoke()
untuk memanggil kaedah, menghantar contoh objek dan parameter (jika ada). 🎜🎜Syntax🎜🎜rrreee🎜di mana: 🎜methodName
ialah nama kaedah yang akan dipanggil. 🎜parameterTypes
ialah tatasusunan jenis parameter kaedah. 🎜objectInstance
ialah contoh objek di mana kaedah itu akan dipanggil (jika kaedah itu ialah kaedah bukan statik). 🎜Pekerja
dengan kaedah berikut: 🎜rrreee🎜Sekarang, mari kita panggil getName() menggunakan mekanisme refleksi
Kaedah: 🎜rrreee🎜Dalam contoh ini, kita mula-mula mendapat objek Kelas kelas Pekerja
. Kemudian, kita mendapat objek Kaedah untuk kaedah getName()
. Akhir sekali, kami mencipta contoh objek Employee
dan memanggil kaedah getName()
menggunakan refleksi. 🎜Atas ialah kandungan terperinci Bagaimanakah mekanisme pantulan Java memanggil kaedah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!