switch'te kalıp eşleştirme
if-else instanceof zincirlerini temiz switch tür kalıplarıyla değiştirin.
Kod Karşılaştırması
✕ Java 8
String format(Object obj) {
if (obj instanceof Integer i)
return "int: " + i;
else if (obj instanceof Double d)
return "double: " + d;
else if (obj instanceof String s)
return "str: " + s;
return "unknown";
}
✓ Java 21+
String format(Object obj) {
return switch (obj) {
case Integer i -> "int: " + i;
case Double d -> "double: " + d;
case String s -> "str: " + s;
default -> "unknown";
};
}
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Yapılandırılmış dağıtım
switch, dallanma yapısını açık ve taranabilir hale getirir.
İfade biçimi
Doğrudan bir değer döndürür — değiştirilebilir değişkene gerek yoktur.
Kapsamlılık
Derleyici tüm türlerin işlendiğini sağlar.
Eski Yaklaşım
if-else Zinciri
Modern Yaklaşım
Tür Kalıpları
JDK'dan itibaren
21
Zorluk
Orta
JDK Desteği
switch'te kalıp eşleştirme
Mevcut
JDK 21 LTS'den itibaren geniş çapta kullanılabilir (Eylül 2023)
Nasıl çalışır
switch'te kalıp eşleştirme, tür testini, tür dönüşümünü ve bağlamayı tek ve özlü bir case etiketinde birleştirerek türlere doğrudan eşleştirmenizi sağlar. Derleyici tamamlığı denetler.
İlgili Belgeler