Membandingkan Ungkapan Lambda
S: Adakah terdapat cara untuk membandingkan ungkapan lambda?
J: Spesifikasi bahasa Java tidak mentakrifkan cara untuk membandingkan ungkapan lambda, tetapi ia membenarkan pelaksanaan menyediakan kaedah perbandingan mereka sendiri.
Pertimbangan Pelaksanaan
Pada masa ini, terdapat ialah hubungan 1:1 antara kelas sintetik yang melaksanakan lambdas dan tapak tangkapan dalam program. Oleh itu, dua ungkapan lambda yang menangkap pembolehubah yang sama di tapak tangkapan yang sama akan diwakili oleh kejadian yang sama dan boleh dibandingkan menggunakan kesamaan rujukan. Walau bagaimanapun, jika dua ungkapan lambda menangkap pembolehubah yang sama di tapak tangkapan yang berbeza atau tidak menangkap, ia mungkin diwakili oleh kejadian yang berbeza dan tidak boleh dibandingkan menggunakan kesamaan rujukan.
Alternatif
Jika anda perlu membandingkan ungkapan lambda, satu alternatif ialah menggunakan pensirilan. Lambda boleh bersiri boleh dibandingkan menggunakan bentuk bersiri mereka. Alternatif lain ialah menggunakan rujukan kaedah dan bukannya ungkapan lambda. Rujukan kaedah boleh dibandingkan menggunakan kesamaan rujukan jika merujuk kepada kaedah yang sama.
Output Boleh Dibaca Manusia
Pada masa ini tidak mungkin untuk mendapatkan rentetan yang boleh dibaca manusia perwakilan ungkapan lambda. Walau bagaimanapun, adalah mungkin untuk mengekstrak nama kaedah yang dirujuk oleh ungkapan lambda menggunakan pantulan.
Atas ialah kandungan terperinci Bolehkah Ungkapan Lambda Dibandingkan di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!