Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Meluluskan Fungsi sebagai Argumen di Jawa?
Meluluskan Fungsi sebagai Argumen dalam Java
Di Java, keupayaan untuk menghantar fungsi sebagai argumen meningkatkan kepelbagaian kod. Untuk mencapai matlamat ini, terdapat pelbagai pendekatan bergantung pada versi Java yang anda gunakan.
Java 8 dan Ke Atas
Dengan kemunculan ungkapan lambda dalam Java 8, lulus berfungsi sebagai hujah menjadi mudah. Ungkapan Lambda membolehkan anda menentukan fungsi tanpa nama yang melaksanakan antara muka kaedah abstrak tunggal (SAM). Sebagai contoh, anda boleh mentakrifkan antara muka berikut:
public interface MyInterface { String doSomething(int param1, String param2); }
Dalam kaedah yang menerima hujah jenis MyInterface, anda kini boleh menggunakan ungkapan lambda untuk menghantar fungsi seperti berikut:
class MyClass { public MyInterface myInterface = (p1, p2) -> { return p2 + p1; }; }
Sebelum Java 8
Sebelum Java 8, pendekatan biasa untuk lulus fungsi sebagai hujah adalah untuk merangkumnya dalam antara muka seperti Callable. Pertimbangkan kaedah berikut:
public T myMethod(Callable<T> func) { return func.call(); }
Kaedah ini menerima hujah jenis Boleh Panggil, yang mewakili fungsi yang mengembalikan nilai jenis T. Anda boleh mentakrifkan pelaksanaan Boleh Panggil untuk merangkum fungsi anda dan menyampaikannya sebagai hujah kepada myMethod.
Contoh Penggunaan:
Jika anda mempunyai kaedah dipanggil methodToPass yang anda ingin luluskan sebagai hujah, anda boleh mencipta pelaksanaan Boleh Panggil seperti berikut:
public int methodToPass() { // do something } public void dansMethod(int i, Callable<Integer> myFunc) { // do something }
Dan kemudian panggil kaedah dansMethod dengan pelaksanaan Boleh Panggil:
dansMethod(100, new Callable<Integer>() { public Integer call() { return methodToPass(); } });
Kesimpulan:
Pendekatan ini menyediakan cara yang berbeza untuk menghantar fungsi sebagai hujah dalam Java, bergantung pada versi Java anda dan keperluan khusus. Dengan memahami teknik ini, anda boleh meningkatkan fleksibiliti dan kebolehgunaan semula kod Java anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meluluskan Fungsi sebagai Argumen di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!