Rumah > Java > javaTutorial > teks badan

Bagaimanakah Saya Boleh Mencapai Fungsi Penunjuk Fungsi di Jawa?

Patricia Arquette
Lepaskan: 2024-11-19 04:27:02
asal
613 orang telah melayarinya

How Can I Achieve Function Pointer Functionality in Java?

Apa yang Perlu Digunakan Daripada Penunjuk Fungsi dalam Java

Dalam bahasa pengaturcaraan Java, penunjuk fungsi, ciri yang membolehkan seseorang menghantar fungsi sebagai hujah kepada fungsi lain, tidak hadir. Walau bagaimanapun, terdapat alternatif untuk mencapai kefungsian yang serupa.

Satu pilihan yang berdaya maju ialah kelas dalaman tanpa nama. Pertimbangkan keperluan untuk mencipta berbilang kaedah yang melakukan operasi yang sama kecuali untuk variasi kecil dalam satu baris kod. Kelas dalaman tanpa nama menawarkan penyelesaian.

Untuk menggunakan kelas dalam tanpa nama, antara muka mesti ditakrifkan, mengisytiharkan kaedah yang akan dihantar masuk. Contohnya, jika kaedah mengambil parameter String dan mengembalikan integer, antara muka akan menyerupai ini:

interface StringFunction {
    int func(String param);
}
Salin selepas log masuk

Kaedah yang menerima penuding fungsi akan menerima contoh antara muka StringFunction, seperti yang ditunjukkan:

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

Untuk menggunakan kaedah ini, gunakan dalaman tanpa nama kelas seperti itu:

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

Dalam Java 8 dan lebih baru, ungkapan lambda menyediakan alternatif yang lebih ringkas:

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

Ini membenarkan untuk menghantar fungsi sebagai hujah dalam ringkas dan boleh dibaca cara, mencontohi tingkah laku penunjuk fungsi dengan berkesan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Fungsi Penunjuk Fungsi 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