Cara Mensimulasikan Kaedah Pass-by-Reference dalam Java
Di Jawa, menghantar kaedah sebagai parameter mungkin kelihatan seperti konsep yang sukar difahami, tetapi terdapat pendekatan alternatif yang boleh mencapai fungsi yang sama. Salah satu teknik tersebut ialah menggunakan antara muka.
Walaupun antara muka itu sendiri tidak boleh mewakili pelaksanaan kaedah tertentu, mereka mentakrifkan kontrak yang menentukan tandatangan kaedah. Ini membolehkan anda membuat kelas dalaman tanpa nama atau ungkapan lambda yang mematuhi antara muka dan menyediakan pelaksanaan kaedah yang diingini.
Pertimbangkan contoh berikut, yang bertujuan untuk meniru gelagat rujukan lalu-selalu untuk kaedah:
public void setAllComponents(Component[] myComponentArray, Command command) { for (Component leaf : myComponentArray) { if (leaf instanceof Container) { //recursive call if Container Container node = (Container) leaf; setAllComponents(node.getComponents(), command); } //end if node command.execute(leaf); } //end looping through components }
Di sini, Command ialah antara muka yang mentakrifkan kaedah pelaksanaan. Anda kemudiannya boleh mencipta kejadian antara muka ini yang mewakili pelaksanaan kaedah sebenar yang anda ingin gunakan.
Untuk menggunakan pendekatan ini, anda akan menggunakan kaedah setAllComponents seperti berikut:
setAllComponents(this.getComponents(), new Command() { @Override public void execute(Component component) { // Code to execute for each component } });
Teknik ini membolehkan anda menghantar pelaksanaan kaedah khusus kepada kaedah setAllComponents, memberikan kemiripan fungsi rujukan lulus.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensimulasikan Rujukan Laluan untuk Kaedah di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!