Alternatif Terdekat kepada Penunjuk Fungsi di Java
Java tidak mempunyai penunjuk fungsi, memberikan cabaran apabila mencipta kaedah yang melaksanakan tugas serupa dengan variasi kecil. Untuk menangani perkara ini, alternatif yang sesuai ialah menggunakan kelas dalaman tanpa nama.
Penyelesaian Kelas Dalaman Tanpa Nama
Kelas dalaman tanpa nama membolehkan anda mentakrifkan kaedah tanpa membuat nama berasingan kelas. Ia mengikut corak mentakrifkan antara muka dengan kaedah yang diperlukan dan melaksanakannya dalam kelas dalaman tanpa nama.
Sebagai contoh, pertimbangkan kaedah yang mengambil rentetan sebagai parameter dan mengembalikan integer. Mula-mula, tentukan antara muka:
interface StringFunction { int func(String param); }
Kaedah yang menerima penunjuk kepada fungsi ini akan kelihatan seperti ini:
public void takingMethod(StringFunction sf) { int i = sf.func("my string"); // do whatever ... }
Untuk memanggil kaedah ini, cipta kelas dalaman tanpa nama yang melaksanakan antara muka:
ref.takingMethod(new StringFunction() { public int func(String param) { // body } });
Sebagai alternatif, Java 8 memperkenalkan ungkapan lambda, yang menyediakan sintaks yang lebih ringkas untuk tujuan ini:
ref.takingMethod(param -> bodyExpression);
Atas ialah kandungan terperinci Apakah Cara Terbaik untuk Mensimulasikan Penunjuk Fungsi dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!