Kesinlikle ihtiyacımız olmadığı halde, bu özelliği neden dile eklediğimiz konusunda biraz perspektif sunmama izin verin (tüm yöntemler referanslar lambdas olarak ifade edilebilir.)
Doğru cevabın olmadığını unutmayın . "Her zaman bir lambda yerine bir yöntem ref kullanın" veya "bir yöntem ref yerine her zaman bir lambda kullanın" diyen herkes göz ardı edilmelidir.
Bu soru, özünde "isimsiz bir sınıf yerine adlandırılmış bir sınıfı ne zaman kullanmalıyım" sorusuna çok benziyor? Cevap aynı: daha okunaklı bulduğunuzda . Kesinlikle biri veya kesinlikle diğeri olan durumlar vardır, ancak ortada bir sürü gri vardır ve yargı kullanılmalıdır.
Yöntem referanslarının arkasındaki teori basittir: isimler önemlidir . Bir yöntemin bir adı varsa, sonuçta sadece dönüp onu çağıran zorunlu bir kod torbası yerine adıyla ona atıfta bulunmak, genellikle (ama her zaman değil!) Daha açık ve okunabilirdir.
Performans veya karakter sayma hakkındaki tartışmalar çoğunlukla kırmızı ringa balığıdır ve onları görmezden gelmelisiniz. Amaç, ne yaptığını çok net bir şekilde yazmaktır. Çoğu zaman (ama her zaman değil!) Yöntem bu metriğe göre kazanımı ifade eder, bu nedenle bu durumlarda kullanılmak üzere bunları bir seçenek olarak dahil ettik.
Yöntemin amacı açıklığa kavuşturup yansıtmadığına dair önemli bir husus, temsil edilen işlevin şeklinin bağlamdan açık olup olmadığıdır. Bazı durumlarda (örneğin, map(Person::getLastName)
bağlamdan bakıldığında, bir şeyi diğerine eşleyen bir işlevin gerekli olduğu oldukça açıktır ve bu gibi durumlarda, yöntem referansları parlar. fonksiyon tanımlanmaktadır; bu, bir lambda'nın daha uzun olsa bile daha okunabilir olabileceğine dair bir uyarı işaretidir.
Son olarak, bulduğumuz şey, çoğu insanın ilk başta yöntem referanslarından uzaklaştığı, çünkü lambdalardan daha yeni ve tuhaf hissettikleri ve bu nedenle başlangıçta onları "daha az okunabilir" bulduklarını, ancak zamanla sözdizimine alıştıklarında, genellikle davranışlarını değiştirirler ve yapabildiklerinde yöntem referanslarına yönelirler. Öyleyse, kendi öznel ilk "daha az okunabilir" tepkinizin neredeyse kesinlikle bir tür aile yanlılığını gerektirdiğinin farkında olun ve stilistik bir görüş sunmadan önce kendinize her ikisiyle rahatlama şansı vermelisiniz.