Izinkan saya menawarkan beberapa perspektif tentang mengapa kami menambahkan fitur ini ke bahasa, padahal jelas kami tidak benar-benar perlu (semua referensi metode dapat diekspresikan sebagai lambda.)
Perhatikan bahwa tidak ada jawaban yang benar . Siapapun yang mengatakan "selalu gunakan metode ref daripada lambda" atau "selalu gunakan lambda alih-alih metode ref" harus diabaikan.
Pertanyaan ini sangat mirip dengan semangat "kapan saya harus menggunakan kelas bernama vs kelas anonim"? Dan jawabannya sama: jika menurut Anda lebih mudah dibaca . Tentu ada kasus yang pasti satu atau pasti yang lain tapi ada sejumlah abu-abu di tengah, dan penilaian harus digunakan.
Teori di balik referensi metode sederhana: nama penting . Jika sebuah metode memiliki sebuah nama, maka merujuknya dengan namanya, bukan dengan sekumpulan kode yang pada akhirnya hanya berbalik dan memanggilnya, seringkali (tetapi tidak selalu!) Lebih jelas dan mudah dibaca.
Argumen tentang kinerja atau tentang menghitung karakter sebagian besar merupakan masalah besar, dan Anda harus mengabaikannya. Tujuannya adalah menulis kode yang menjelaskan apa yang dilakukannya. Sangat sering (tetapi tidak selalu!) Ref metode menang pada metrik ini, jadi kami memasukkannya sebagai opsi, untuk digunakan dalam kasus tersebut.
Pertimbangan utama tentang apakah referensi metode memperjelas atau mengaburkan maksud adalah apakah sudah jelas dari konteks apa bentuk fungsi yang diwakili. Dalam beberapa kasus (misalnya, map(Person::getLastName)
cukup jelas dari konteks bahwa fungsi yang memetakan satu hal ke hal lain diperlukan, dan dalam kasus seperti ini, referensi metode bersinar. Dalam kasus lain, menggunakan metode ref mengharuskan pembaca bertanya-tanya tentang jenis apa fungsi dijelaskan; ini adalah tanda peringatan bahwa lambda mungkin lebih mudah dibaca, meskipun lebih panjang.
Akhirnya, apa yang kami temukan adalah bahwa kebanyakan orang pada awalnya menjauh dari referensi metode karena mereka merasa lebih baru dan lebih aneh daripada lambda, dan awalnya menganggapnya "kurang dapat dibaca", tetapi seiring waktu, ketika mereka terbiasa dengan sintaks, umumnya mengubah perilaku mereka dan tertarik pada referensi metode bila mereka bisa. Jadi ketahuilah bahwa reaksi awal subjektif Anda yang "kurang terbaca" hampir pasti memerlukan beberapa aspek bias kekeluargaan, dan Anda harus memberi diri Anda kesempatan untuk merasa nyaman dengan keduanya sebelum memberikan opini gaya.