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
Patricia Arquetteasal
2024-11-20 13:39:22710semak imbas

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);
}
  1. Buat kaedah yang menerima contoh antara muka anda sebagai parameter.
public void takingMethod(StringFunction sf) {
    int i = sf.func("my string");
    // Operations...
}
  1. Gunakan kaedah menggunakan kelas dalaman tanpa nama:
ref.takingMethod(new StringFunction() {
    public int func(String param) {
        // Implementation...
    }
});

Ungkapan Lambda ( Java 8 )

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

ref.takingMethod(param -> {
    // Implementation...
});

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!

Kenyataan:
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