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!