Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Melepasi Fungsi sebagai Parameter di Jawa?

Bagaimanakah Saya Boleh Melepasi Fungsi sebagai Parameter di Jawa?

Linda Hamilton
Lepaskan: 2024-12-16 03:58:10
asal
642 orang telah melayarinya

How Can I Pass Functions as Parameters in Java?

Berfungsi sebagai parameter dalam Java

Dalam Java, bagaimana untuk menghantar fungsi sebagai parameter kepada fungsi lain?

Java 8 dan ke atas

Gunakan Java 8 ungkapan lambda, apabila anda mempunyai kelas atau antara muka (kadangkala dipanggil jenis SAM) dengan hanya satu kaedah abstrak, contohnya:

public interface MyInterface {
    String doSomething(int param1, String param2);
}
Salin selepas log masuk

maka anda boleh menggunakan ungkapan lambda sebaliknya di mana MyInterface digunakan:

class MyClass {
    public MyInterface myInterface = (p1, p2) -> { return p2 + p1; };
}
Salin selepas log masuk

Sebagai contoh, anda boleh Untuk melaksanakan dengan cepat dengan mencipta urutan baharu:

new Thread(() -> someMethod()).start();
Salin selepas log masuk

dan gunakan sintaks rujukan kaedah untuk menjadikannya lebih ringkas:

new Thread(this::someMethod).start();
Salin selepas log masuk

Jika tidak menggunakan ungkapan lambda formula, dua contoh terakhir akan kelihatan seperti ini:

new Thread(new Runnable() { someMethod(); }).start();
Salin selepas log masuk

Jawa Versi pra-8

Corak biasa ialah "membungkus" fungsi di dalam antara muka, seperti Boleh Dipanggil, dan kemudian menghantar Boleh Dipanggil:

public T myMethod(Callable<T> func) {
    return func.call();
}
Salin selepas log masuk

Corak ini dipanggil corak arahan.

Ingat bahawa adalah yang terbaik untuk mencipta antara muka untuk tujuan tertentu. Jika anda memilih untuk menggunakan panggilan, gantikan T di atas dengan sebarang jenis nilai pulangan yang anda jangkakan, seperti String.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melepasi Fungsi sebagai Parameter 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