DEV Community

Mustafa  Çam
Mustafa Çam

Posted on

Method References

Java'da method references (metod referansları), Java 8 ile gelen ve lambda ifadelerinin daha okunabilir ve kısa hale getirilmesini sağlayan bir özelliktir. Metod referansları, belirli bir metodun doğrudan adını kullanarak, o metodu bir lambda ifadesi yerine geçirebilir. Bu, özellikle tekrar tekrar kullanılan metodlar için kod tekrarını azaltır ve kodun okunabilirliğini artırır.

Metod referansları dört ana türde olabilir:

  1. Statik Metod Referansları:

    • Sınıfın statik metodlarına direkt sınıf adı üzerinden erişim sağlar.
    • Örnek: ClassName::staticMethodName
  2. Belirli Bir Nesnenin İnstance Metod Referansları:

    • Belirli bir nesnenin instance metodlarına o nesnenin referansı üzerinden erişim sağlar.
    • Örnek: instance::instanceMethodName
  3. Belirli Bir Tipin Herhangi Bir Nesnesinin İnstance Metod Referansları:

    • Belirli bir tipin herhangi bir nesnesinin instance metodlarına direkt tip adı üzerinden erişim sağlar.
    • Örnek: ClassName::instanceMethodName
  4. Yapıcı Metod Referansları (Constructor References):

    • Bir sınıfın yapıcı metoduna (constructor) direkt sınıf adı üzerinden erişim sağlar.
    • Örnek: ClassName::new

Metod referansları, :: operatörü kullanılarak ifade edilir. Örneğin, bir listenin her elemanını büyük harfe çeviren bir metodunuz varsa ve bu işlemi bir stream üzerinde yapmak istiyorsanız, şu şekilde bir lambda ifadesi yazabilirsiniz:

list.forEach(s -> System.out.println(s.toUpperCase()));
Enter fullscreen mode Exit fullscreen mode

Aynı işlemi metod referansı kullanarak daha kısa ve okunabilir bir şekilde yapabilirsiniz:

list.forEach(System.out::println);
Enter fullscreen mode Exit fullscreen mode

Bu örnekte, System.out nesnesinin println metoduna bir referans verilmiş ve lambda ifadesi yerine geçmiştir.

Metod referansları, fonksiyonel arayüzlerle (functional interfaces) birlikte kullanıldığında, kodun daha temiz ve anlaşılır olmasını sağlar. Ayrıca, Java'nın işlevsel programlama özelliklerini daha etkin kullanmanıza olanak tanır¹²³.

Kaynaklar:

Kaynak: Bing ile konuşma, 17.05.2024
(1) Java 8 - Method Reference – KodEdu. https://kodedu.com/2014/09/java-8-method-reference/.
(2) Method References in Java | Baeldung. https://www.baeldung.com/java-method-references.
(3) Java 8 Method Reference - javatpoint. https://www.javatpoint.com/java-8-method-reference.
(4) Java 8 - Method Reference – KodEdu. https://kodedu.com/2014/09/java-8-method-reference/.
(5) Method References in Java | Baeldung. https://www.baeldung.com/java-method-references.
(6) Java 8 Method Reference - javatpoint. https://www.javatpoint.com/java-8-method-reference.
(7) Method References | Java Tutorial for Beginners. https://java-tutorial.dev/docs/Functional-Programming-In-Java/Method-References.

Top comments (0)