CodeBlanks Logo Icon CodeBlanks

Supplier<T>

Supplier<T> ile üretici fonksiyonunu öğrenirsin.

Supplier<T> arayüzü

Supplier<T>, hiç parametre almayan ve bir T değeri üreten bir fabrika işlevidir. Tek soyut yöntemi get'tir. Değer üretimini geciktirmek (lazy evaluation) için kullanılır.

Örnek: Supplier<String> greeting = () -> "Merhaba";. Sonra greeting.get() çağrısı "Merhaba" döndürür. Supplier, yalnızca gerektiğinde hesaplanacak pahalı bir değer için idealdir; çünkü get çağrılana kadar üretim yapılmaz.

Supplier ile tembellik

Supplier'ın en güçlü yanı tembelliğidir. get çağrılana kadar hiçbir şey hesaplanmaz. Bu, pahalı işlemleri yalnızca gerçekten gerektiğinde yapmanın standart yoludur.

Örnek: Supplier<List<String>> data = () -> loadFromDisk(). Burada loadFromDisk yalnızca data.get() çağrıldığında çalışır. Aynı deseni Optional.orElseGet ve Stream.generate içinde görürsün; ikisi de Supplier alır ve tembel biçimde değer üretir.

Uygulama Supplier ile değer üret

Bir Supplier<String> tanımla; () -> "Merhaba" lambdasını kullansın. get() çağrısının sonucunu System.out.println ile yazdır.

Başlangıç kodu

Main.java
import java.util.function.Supplier;

// Supplier ile değer üretici tanımla
// get çağrısıyla değeri üret
// Sonucu yazdır

Örnek çözüm

Main.java
import java.util.function.Supplier;

public class SupplierExample {
    public static void main(String[] args) {
        Supplier<String> greeting = () -> "Merhaba";
        System.out.println(greeting.get());
    }
}

Beklenen çıktı

Merhaba

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Supplier çağrısını tamamla

Soru
Supplier<String> greeting = () -> "Merhaba";
String result = greeting.____();
Cevap
Supplier<String> greeting = () -> "Merhaba";
String result = greeting.get();

Açıklama: get, Supplier'ın çağrı yöntemidir.

2 Supplier kavramlarını eşleştir

Kavram Anlamı
Supplier<T> Değer üretir
get Çağrı yöntemi
Parametre yok Supplier'ın özelliği
T get() İmza

3 Hangi arayüz hiç parametre almadan değer döndürür?

  • Function<T,R>
  • Consumer<T>
  • Predicate<T>
  • Supplier<T> Doğru cevap

Açıklama: Supplier<T> parametre almaz ve T döndürür.

İleri seviye bölümündeki tüm dersler