Takip et

Java’da Method References

Java’da Method References

Java 8 ile gelen en önemli özelliklerinden biri de Method References’tır. Method References, lambda ifadelerine alternatif bir yol sunar ve belirli durumlarda kodun daha okunabilir ve öz hale gelmesini sağlar. Bu makalede, Java’da Method References’ın ne olduğunu, nasıl kullanıldığını ve avantajlarını ele alacağız.

Method References Nedir?

Method References, bir metodun referansını bir değişkene atamamızı sağlayan bir sözdizimidir. Bu referans daha sonra lambda ifadesi yerine kullanılabilir. Lambda ifadelerinin yaptığı işi yaparlar ancak daha öz bir şekilde ifade edilirler.

Method References’ı Kullanmanın Avantajları

Method References, lambda ifadelerine göre birçok avantaj sunar:

  • Daha Okunabilir Kod: Method References, lambda ifadelerine göre daha öz ve okunabilir bir kod yazmamızı sağlar.
  • Daha Az Kod: Method References, lambda ifadelerinden daha az kod kullanarak aynı işlemi gerçekleştirebilir.
  • Daha İyi Performans: Bazı durumlarda, Method References, lambda ifadelerinden daha iyi performans gösterebilir.

Method References Türleri

Java’da Method References’ın dört türü vardır:

  1. Statik Metot Referansı: Statik bir metodun referansını alır. Örneğin, Math::sqrt, Math sınıfının sqrt metoduna referans verir.
  2. Nesne Metot Referansı: Bir nesnenin metoduna referans verir. Örneğin, String::toUpperCase, String sınıfının toUpperCase metoduna referans verir.
  3. Constructor Referansı: Bir sınıfın constructor’ına referans verir. Örneğin, String::new, String sınıfının constructor’ına referans verir.
  4. Arbitrary Metot Referansı: Belirli bir nesnenin metoduna referans verir. Örneğin, this::toString, this nesnesinin toString metoduna referans verir.

Method References Örnekleri

Aşağıdaki örneklerde Method References’ın nasıl kullanıldığını görebilirsiniz:

1. Statik Metot Referansı

“`java
import java.util.Arrays;
import java.util.List;

public class Main {
public static void main(String[] args) {
List numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(System.out::println);
}
}
“`

Bu örnekte, System.out::println, System.out nesnesinin println metoduna referans verir. Bu, her sayının ekrana yazdırılmasını sağlar.

2. Nesne Metot Referansı

“`java
import java.util.Arrays;
import java.util.List;

public class Main {
public static void main(String[] args) {
List names = Arrays.asList(“Fatih”, “Soysal”);
names.forEach(String::toUpperCase);
}
}
“`

Bu örnekte, String::toUpperCase, String sınıfının toUpperCase metoduna referans verir. Bu, her ismin büyük harflere dönüştürülmesini sağlar.

3. Constructor Referansı

“`java
import java.util.Arrays;
import java.util.List;
import java.util.function.Function;

public class Main {
public static void main(String[] args) {
List names = Arrays.asList(“Fatih”, “Soysal”);
Function function = String::new;
names.forEach(name -> System.out.println(function.apply(name)));
}
}
“`

Bu örnekte, String::new, String sınıfının constructor’ına referans verir. Bu, her ismin yeni bir String nesnesi oluşturmasını sağlar.

Method References ve Lambda İfadeleri

Method References ve lambda ifadeleri, genellikle aynı işi yapmak için kullanılabilir. Ancak, Method References daha öz ve okunabilir bir kod yazmamızı sağlar. Özellikle statik metotlar veya nesne metotları için daha iyi bir seçenektir.

Sonuç

Method References, Java 8 ile gelen güçlü bir özelliktir. Kodun daha öz ve okunabilir olmasını sağlar ve lambda ifadelerine daha iyi bir alternatif sunar. Bu makalede Method References’ın ne olduğunu, nasıl kullanıldığını ve avantajlarını inceledik. Method References’ı kullanarak kodunuzu iyileştirmeyi deneyebilirsiniz.

#Etiketler

#Java #MethodReferences #Lambda #FunctionalProgramming #Java8

**Kaynaklar:**

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.