Rumah  >  Artikel  >  Java  >  Kekeliruan Sekitar Kaedah Rujukan

Kekeliruan Sekitar Kaedah Rujukan

Patricia Arquette
Patricia Arquetteasal
2024-09-23 06:21:14356semak imbas

Confusion Around Method Referencing

Rujukan kaedah dalam Java menyediakan cara untuk merujuk kepada kaedah atau pembina tanpa memanggilnya secara eksplisit. Ia boleh dianggap sebagai singkatan untuk menulis ungkapan lambda yang mudah.

Kebanyakan kaedah rujukan boleh sama ada statik atau berkaitan dengan contoh:

Integer::sum;
System.out::println;

Ini ialah contoh rujukan kaedah statik (juga dikenali sebagai rujukan terikat).

Walau bagaimanapun, pertimbangkan ini:

String::concat

Di sini, concatis bukan kaedah statik, jadi bagaimana ini berfungsi? Ini adalah contoh rujukan tidak terikat. Pengkompil memahami bahawa ini adalah rujukan kaedah contoh berdasarkan cara kod kami ditulis. Ini memungkinkan untuk memudahkan panggilan kaedah seperti ini.

Cara kami menulis kod kami menentukan jenis rujukan ini (terutamanya yang tidak terikat). Mengambil contoh concatas:

((a, b) -> a + b, "Hello", "World");
// ----------------Is same as -------------
((a, b) -> a.concat(b), "Hello", "World"); // This one could be replaced by mehod referencing

// ----------------Alternative-------------

(String::concat, "Hello", "World");

/* The use of 'a' as the first parameter and calling `concat `of 'a' itself 
gives the compiler an idea of how it should decode `String::concat`*/

Jadi, daripada menulis lambda penuh, kita boleh ringkaskan dengan rujukan kaedah.

Teruskan Belajar ?

Atas ialah kandungan terperinci Kekeliruan Sekitar Kaedah Rujukan. 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