Rumah > Java > javaTutorial > Apakah Cara Terbaik untuk Mensimulasikan Penunjuk Fungsi dalam Java?

Apakah Cara Terbaik untuk Mensimulasikan Penunjuk Fungsi dalam Java?

Linda Hamilton
Lepaskan: 2024-12-02 19:57:10
asal
895 orang telah melayarinya

What's the Best Way to Simulate Function Pointers in Java?

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

Kaedah yang menerima penunjuk kepada fungsi ini akan kelihatan seperti ini:

public void takingMethod(StringFunction sf) {
   int i = sf.func("my string");
   // do whatever ...
}
Salin selepas log masuk

Untuk memanggil kaedah ini, cipta kelas dalaman tanpa nama yang melaksanakan antara muka:

ref.takingMethod(new StringFunction() {
    public int func(String param) {
        // body
    }
});
Salin selepas log masuk

Sebagai alternatif, Java 8 memperkenalkan ungkapan lambda, yang menyediakan sintaks yang lebih ringkas untuk tujuan ini:

ref.takingMethod(param -> bodyExpression);
Salin selepas log masuk

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!

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