Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Meluluskan Fungsi sebagai Argumen di Jawa?

Bagaimanakah Saya Boleh Meluluskan Fungsi sebagai Argumen di Jawa?

Barbara Streisand
Barbara Streisandasal
2024-12-14 04:18:09371semak imbas

How Can I Pass Functions as Arguments in Java?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn