Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Mensimulasikan Penunjuk Fungsi dalam Java Menggunakan Kelas Dalaman Tanpa Nama atau Ungkapan Lambda?

Bagaimanakah Saya Boleh Mensimulasikan Penunjuk Fungsi dalam Java Menggunakan Kelas Dalaman Tanpa Nama atau Ungkapan Lambda?

Patricia Arquette
Lepaskan: 2024-11-20 13:39:22
asal
699 orang telah melayarinya

How Can I Simulate Function Pointers in Java Using Anonymous Inner Classes or Lambda Expressions?

Antara Muka Fungsian sebagai Penunjuk Fungsi dalam Java

Di Java, apabila penunjuk fungsi tidak tersedia, kelas dalaman tanpa nama atau ungkapan lambda berfungsi sebagai alternatif yang sesuai .

Kelas Dalaman Tanpa Nama

Bayangkan anda memerlukan kaedah yang melakukan tindakan yang serupa tetapi berbeza sedikit dalam satu baris pengiraan. Untuk melaksanakan ini menggunakan kelas dalaman tanpa nama:

  1. Tentukan antara muka yang mengandungi fungsi yang anda ingin rangkumkan.
interface StringFunction {
    int func(String param);
}
Salin selepas log masuk
  1. Buat kaedah yang menerima contoh antara muka anda sebagai parameter.
public void takingMethod(StringFunction sf) {
    int i = sf.func("my string");
    // Operations...
}
Salin selepas log masuk
  1. Gunakan kaedah menggunakan kelas dalaman tanpa nama:
ref.takingMethod(new StringFunction() {
    public int func(String param) {
        // Implementation...
    }
});
Salin selepas log masuk

Ungkapan Lambda ( Java 8 )

Secara sintaksis lebih ringkas, anda boleh menggunakan ungkapan lambda untuk mencapai hasil yang sama:

ref.takingMethod(param -> {
    // Implementation...
});
Salin selepas log masuk

Dengan menggunakan kelas dalaman tanpa nama atau ungkapan lambda, anda boleh mencipta penunjuk fungsi dalam Java, meningkatkan kebolehgunaan semula kod dan fleksibiliti.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensimulasikan Penunjuk Fungsi dalam Java Menggunakan Kelas Dalaman Tanpa Nama atau Ungkapan Lambda?. 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