Rumah  >  Artikel  >  Java  >  Bandingkan dan bezakan antara penutupan Java dan fungsi tanpa nama

Bandingkan dan bezakan antara penutupan Java dan fungsi tanpa nama

WBOY
WBOYasal
2024-05-04 09:21:02974semak imbas

Kedua-dua penutupan dan fungsi tanpa nama di Java ialah kelas dalaman tanpa nama, tetapi penutupan boleh menyelamatkan keadaan di luar persekitaran penciptaan mereka, manakala fungsi tanpa nama hanya melaksanakan satu operasi dan terhad kepada persekitaran penciptaan mereka.

Java 闭包与匿名函数之间的比较和对照

Penutupan dan Fungsi Tanpa Nama di Java

Gambaran Keseluruhan

Penutupan dan fungsi tanpa nama di Java adalah kelas dalaman tanpa nama yang membenarkan akses kepada pembolehubah yang terdapat dalam persekitaran, tetapi di antara kedua-dua pembolehubah itu terdapat perbezaan halus.

Penutupan

  • Penutupan ialah kelas dalaman tanpa nama dengan pembolehubah persendirian dan keadaan boleh simpan
  • Penutupan boleh mengandungi pembolehubah dari persekitaran di mana ia dicipta dan menyediakan akses berterusan kepada mereka
  • Properties atau sebagai objek dikembalikan atau diluluskan, dengan itu memanjangkan hayat persekitaran di mana ia dicipta

Fungsi tanpa nama

  • Fungsi tanpa nama ialah kelas dalaman tanpa nama yang hanya menjalankan operasi sekali
  • Fungsi tanpa nama" pada asasnya adalah "satu masa" , Kerana ia tidak mempunyai keadaan
  • fungsi tanpa nama sering digunakan sebagai ungkapan Lambda untuk menulis kod dengan lebih ringkas

Jadual perbandingan

FungsiAnonymousNegeri Simpan keadaan, boleh diubah suaiTiada keadaanSkopMelebihi persekitaran penciptaannya, selagi rujukan wujudTerhad kepada persekitaran penciptaannyaInstantiation baharuInstantiation Lamb FormulaPenggunaanPermulaan yang malas, pengurusan negeriMengendalikan tugas sekali sahaja, bimbang tentang pemudahan
Ciri-ciri Anonymous
Serta baharu

Kes praktikal

🎜🎜🎜🎜🎜🎜🎜 🎜Contoh fungsi tanpa nama🎜 🎜
// 用于延迟初始化的闭包
public static Supplier<String> createLazySupplier() {
    String name = "Alice";
    return () -> name;
}
🎜 🎜 Kesimpulan 🎜🎜🎜 Penutupan dan fungsi tanpa nama adalah kedua-dua alat berguna dalam Java yang membolehkan penciptaan kod yang fleksibel dan cekap. Memilih yang mana satu untuk digunakan bergantung pada ciri yang diperlukan untuk kes penggunaan tertentu. 🎜

Atas ialah kandungan terperinci Bandingkan dan bezakan antara penutupan Java dan fungsi tanpa nama. 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