Rumah > Java > javaTutorial > Bagaimanakah Java Meniru Penunjuk Fungsi untuk Kod Modular?

Bagaimanakah Java Meniru Penunjuk Fungsi untuk Kod Modular?

Susan Sarandon
Lepaskan: 2024-11-19 09:16:02
asal
947 orang telah melayarinya

How Can Java Mimic Function Pointers for Modular Code?

Pengganti Java untuk Penunjuk Fungsi

Ketiadaan penunjuk fungsi Java boleh menghalang penciptaan kod modular yang boleh digunakan semula. Walau bagaimanapun, terdapat penyelesaian: kelas dalaman tanpa nama.

Pertimbangkan keperluan untuk berbilang kaedah yang melaksanakan operasi yang sama kecuali untuk satu baris pengiraan. Sebaik-baiknya, lulus penunjuk fungsi sudah memadai, tetapi Java tidak menyokongnya. Alternatifnya ialah untuk menentukan antara muka dengan fungsi yang diingini sebagai ahli tunggalnya.

Sebagai contoh, untuk mentakrifkan fungsi yang mengambil rentetan dan mengembalikan integer:

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

Sekarang, a kaedah yang menerima penuding fungsi boleh mengambil contoh StringFunction:

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

Memanggil kaedah ini akan kelihatan seperti ini:

ref.takingMethod(new StringFunction() {
    public int func(String param) {
        // Implementation for the single changed line
    }
});
Salin selepas log masuk

Dalam Java 8, ini boleh dipermudahkan lagi menggunakan ungkapan lambda :

ref.takingMethod(param -> {
    // Implementation for the single changed line
});
Salin selepas log masuk

Dengan menggunakan kelas dalaman tanpa nama atau ungkapan lambda, pengaturcara Java boleh mencapai kefungsian penunjuk fungsi, menawarkan fleksibiliti dan kebolehgunaan semula kod.

Atas ialah kandungan terperinci Bagaimanakah Java Meniru Penunjuk Fungsi untuk Kod Modular?. 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