Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Mensimulasikan Kaedah Lulus dengan Berkesan sebagai Parameter dalam Java?
Melalui Kaedah sebagai Parameter dalam Java: Meneroka Alternatif
Di Java, kaedah tidak boleh dihantar sebagai parameter secara langsung. Walau bagaimanapun, terdapat alternatif yang membenarkan kefungsian yang serupa, seperti antara muka dan corak arahan.
Antaramuka sebagai Alternatif
Antaramuka bukan alternatif yang sesuai untuk menghantar kaedah sebagai parameter, kerana ia adalah abstrak dan tidak menentukan sebarang pelaksanaan sebenar. Antara muka hanya mengisytiharkan satu set kaedah yang mesti dilaksanakan oleh kelas atau antara muka lain.
Corak Perintah: Satu Cara untuk Mensimulasikan Penghantaran Kaedah
Corak arahan menawarkan cara untuk meniru kaedah lulus dalam Java. Ia melibatkan mencipta objek arahan yang merangkum kaedah yang akan dilaksanakan. Objek arahan kemudiannya boleh dihantar sebagai parameter kepada kaedah lain.
Berikut ialah contoh pelaksanaan corak arahan:
public interface Command { public void execute(Object data); } public class PrintCommand implements Command { public void execute(Object data) { System.out.println(data.toString()); } } public static void callCommand(Command command, Object data) { command.execute(data); }
Untuk menggunakan corak arahan, anda boleh menentukan objek arahan untuk setiap kaedah yang anda ingin luluskan sebagai parameter. Objek arahan kemudiannya boleh dihantar ke kaedah lain seperti yang ditunjukkan di bawah:
callCommand(new PrintCommand(), "hello world");
Dengan memanfaatkan corak arahan, anda boleh mencapai gelagat yang serupa dengan menghantar kaedah sebagai parameter, sambil mematuhi had Java.
Nota: Mulai Java 8, ungkapan lambda menyediakan cara yang lebih ringkas untuk merangkum pelaksanaan kaedah, menjadikan ini penyelesaian yang lebih cekap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensimulasikan Kaedah Lulus dengan Berkesan sebagai Parameter dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!