CodeBlanks Logo Icon CodeBlanks

ifPresent ve isPresent

ifPresent ve isPresent ile kontrol öğrenirsin.

Koşullu eylem: ifPresent

ifPresent(Consumer), değer varsa verilen Consumer'ı çalıştırır; yoksa hiçbir şey yapmaz. Bu, isPresent denetimi yapmadan değeri kullanmanın en temiz yoludur.

Örnek: opt.ifPresent(değer -> System.out.println(değer)). Eğer opt doluysa değer yazdırılır; boşsa hiçbir şey olmaz. ifPresent, yan etkisi olan işlemler için uygundur; dönüş değeri bekleyenler için değil. Değer yokluğunda başka bir eylem de istiyorsan ifPresentOrElse kullanılır.

get'ten kaçınma

Optional.get() değeri doğrudan verir; ama değer yoksa NoSuchElementException fırlatır. Bu yüzden get'i denetimsiz çağırmak tehlikelidir.

Yerine ifPresent, orElse veya orElseThrow kullanmak daha güvenlidir. Örnek: opt.ifPresent(v -> use(v)). Böylece boş durum açıkça ele alınır; beklenmedik hata alınmaz. Yine de değer olduğundan eminsen get işe yarar; ancak bu durumda bir yorumla nedenini belirtmek iyi bir uygulamadır.

Uygulama ifPresent ile değeri yazdır

Optional.of("Mert") ile bir Optional<String> oluştur. ifPresent ile lambda kullanarak değeri "Merhaba " ön ekiyle System.out.println ile yazdır.

Başlangıç kodu

Main.java
import java.util.Optional;

// "Mert" dizgisini Optional.of ile sarmala
// ifPresent ile lambda yazdır
// Çıktı: Merhaba Mert

Örnek çözüm

Main.java
import java.util.Optional;

public class IfPresentExample {
    public static void main(String[] args) {
        Optional<String> name = Optional.of("Mert");
        name.ifPresent(n -> System.out.println("Merhaba " + n));
    }
}

Beklenen çıktı

Merhaba Mert

Soru ve cevaplar

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

1 Optional denetim yöntemlerini eşleştir

Kavram Anlamı
ifPresent Consumer alır
isPresent boolean döndürür
isEmpty Boş mu
ifPresentOrElse İki Consumer alır

2 Hangi yöntem boolean döndürür?

  • ifPresent
  • get
  • isPresent Doğru cevap
  • map

Açıklama: isPresent değerin varlığını boolean olarak verir.

3 isPresent denetimini tamamla

Soru
boolean present = opt.____();
Cevap
boolean present = opt.isPresent();

Açıklama: isPresent değerin varlığını denetler.

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