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

Bagaimanakah Saya Boleh Meluluskan Fungsi sebagai Argumen di Jawa?

Barbara Streisand
Lepaskan: 2024-12-14 04:18:09
asal
369 orang telah melayarinya

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);
}
Salin selepas log masuk

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; };
}
Salin selepas log masuk

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();
}
Salin selepas log masuk

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
}
Salin selepas log masuk

Dan kemudian panggil kaedah dansMethod dengan pelaksanaan Boleh Panggil:

dansMethod(100, new Callable<Integer>() {
    public Integer call() {
        return methodToPass();
    }
});
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan