- 19/9/2023’te yayımlanması planlanan Java 21,
switch blokları ve ifadelerinde record pattern desteği sunuyor; bu da Java’yı Kotlin, Rust ve C# gibi dillerdeki fonksiyonel programlama kalıplarına yaklaştıran önemli bir güncelleme
- Java son 10 yılda hızla gelişti ve Java 9’dan bu yana her 6 ayda bir büyük güncelleme aldı
- Java 21, record pattern ve
switch pattern matching özelliklerini kalıcı hale getirerek, fonksiyonel programlamanın temel unsurlarından biri olan cebirsel veri tiplerinin ifade edilmesini mümkün kılıyor
- Cebirsel veri tipleri kavramı, küme teorisinin bir alt alanı olan tip teorisi üzerinden açıklanıyor
- Yeni sürüm ayrıca pattern matching özelliğini de sunuyor; bu sayede belirli veri kalıplarının statik doğrulaması yapılabiliyor
- Java 21, geliştiricilerin kütüphane API’leriyle kullanıcı etkileşimini denetleyebilmesi için sealed class veya interface yapısını sunuyor
- Sealed class veya interface, bir tipin belirli bir anda yalnızca bileşenlerinden biri olabileceği anlamına gelen sum type kavramına dayalı tasarım kalıplarını destekliyor
- Yeni sürüm ayrıca
switch deyimleri ve ifadeleri içinde karmaşık koşulları kısa biçimde ifade etmeyi sağlayan guard clause özelliğiyle geliyor
- Java 21, pattern eşleşmesi başarısız olduğunda ortaya çıkan
java.lang.MatchException adlı yeni bir exception sınıfı tanıtıyor
- Bu yazı, Java 21’de
switch bloklarının kullanımını ve belirli koşullarda MatchException oluşturmanın nasıl mümkün olabildiğini ele alıyor
switch bloğu ne seçiciyle ne de belirtilen varyantlardan biriyle eşleşmediğinde MatchException oluşuyor ve bu oldukça sıra dışı kabul ediliyor
- Java Enhancement Proposal (JEP) 441, her zaman exception fırlatan record erişim yöntemlerinin oldukça sıra dışı olduğunu kabul ediyor
- Yazı, guard clause içinde sıfıra bölme hatası nedeniyle
MatchException üreten bir switch bloğu örneği veriyor
- Yazar, bölme işleminde bölünenin 0 olabileceği dinamik bir değer söz konusu olduğunda durumun daha da karmaşıklaştığına dikkat çekiyor
- Bu yazı, Java 21’in yeni özelliklerini ve yeteneklerini inceleyen bir serinin parçası; ileride bu özelliklerin Java kodu yazımını nasıl iyileştirebileceğine dair pratik örneklerle bazı ilgi çekici noktalar ele alınacak
- Yazar, generics’in
switch pattern’lerle nasıl etkileşime girdiği gibi bazı konuların bu yazıda ele alınmadığını, ancak gelecekteki yazılarda işlenebileceğini belirtiyor
- Bu yazı; JVM pattern matching, fonksiyonel programlama, Java 21 ve cebirsel tiplerle ilgilenenler için ilgili bir içerik
Henüz yorum yok.