Java 14, yeni özellikleriyle geliştiricilere birçok kolaylık sağlıyor. Bu sürüm, birçok geliştirici tarafından heyecanla bekleniyordu. Switch Expressions, Record Classes, ve Text Blocks gibi özellikler, Java programlama dilinde büyük bir devrim yaratmıştır.
Switch ifadeleri artık daha basit hale getirilmiş ve kod okunaklığı arttırılmıştır. Record sınıfları, daha kısa ve okunaklı bir şekilde kullanılabiliyor. NullPointerException hataları artık daha anlaşılır bir şekilde gösteriliyor ve detaylı açıklamalar sunuluyor.
Ayrıca, Pattern Matching for instanceof, Target Typing, ve Compact Constructor Syntax gibi özellikler de Java 14 sürümünde yer almaktadır. Bu özellikler, kodun daha az yazılmasını ve daha okunaklı hale getirilmesini sağlamaktadır. Java 14, geliştiriciler için büyük bir kolaylık sağlamakta ve Java programlama dilini daha iyi hale getirmektedir.
Switch Expressions
Java 14 sürümü ile birlikte gelen özellikler arasında en dikkat çekenlerden biri de switch ifadelerinin yeni halidir. Bu özellik sayesinde switch ifadeleri daha da kullanışlı ve okunaklı hale gelmiştir.
Switch ifadelerinin yeni halinde artık her bir case ifadesi bir değer döndürebilir. Ayrıca switch ifadelerinde artık block oluşturmak için süslü parantez açıp kapamaya da gerek kalmamıştır. Bunun yerine virgülle ayrılmış ifadeler yazarak block oluşturulabilir. Bu sayede kod tekrarı da önlenmiş olur.
Java 14 Eski Hal | Java 14 Yeni Hal |
---|---|
switch (param) { case 1: doSomething(); break; case 2: doSomethingElse(); break; default: doNothing();} |
switch (param) { case 1 -> doSomething(); case 2 -> doSomethingElse(); default -> doNothing();} |
Ayrıca, switch ifadelerinde artık yield anahtar kelimesi kullanılmaktadır. Bu anahtar kelimesi bir değer döndüreceği anlamına gelmektedir. Böylece switch ifadelerinde her case ifadesi bir değer döndürebileceği gibi, switch ifadesi de bir değer döndürebilir.
Switch ifadelerinin yeni hali sayesinde kod yazımı daha da kolaylaşmış ve okunaklı hale gelmiştir.
Record Classes
Java 14 sürümü ile birlikte gelen en önemli özelliklerden biri Record Classes’tır. Record sınıfları, immutable (değiştirilemez) veri tipleri için geliştirilmiştir. Bunun yanı sıra, veri taşıma ve DTO (Data Transfer Objects) sınıfları için de kullanılabilmektedir. Record sınıfları açısından en önemli özellik, kısa bir şekilde kullanılabilmesidir.
Bir Record sınıfı, sınıf tanımı içerisinde sadece alanları (fields) belirtilerek tanımlanır ve getter metodları tanımlanmaz. Bu sayede, sınıflar daha okunaklı ve kısa hale gelir. Record sınıflarının kullanımı, aynı zamanda veri güvenliğini de arttırmaktadır.
Bir diğer önemli nokta ise Record sınıflarının equals() ve hashCode() metodlarının otomatik olarak üretilmesidir. Böylece, sınıfların karşılaştırılması ve nesneler arasında eşleştirilmesi daha kolay hale gelmektedir. Ayrıca, Record sınıflarında değiştirilemez (immutable) olarak tanımlanan alanlara sadece constructor içerisinde değer atanabilir, sonrasında değiştirelemezler.
Improved NullPointerException Messaging
NullPointerException, Java programlama dili içerisinde sıklıkla karşılaşılan bir hata türüdür. Bu hata, bir nesne değişkeninin null değerinde olduğunu gösterir ve bu değişkene yapılan herhangi bir işlem sonucunda NullPointerException hatası ile karşılaşılır. Java 14 sürümü ile birlikte, bu hatayı karşılayan mesajlar daha anlaşılır bir şekilde gösterilmekte. Böylece, hatanın kaynağı daha kolay bir şekilde tespit edilebilmektedir.
Java 14 ile birlikte gelen bu yenilik ile birlikte, NullPointerException hatası veren kod bloglarındaki hatanın kaynağı daha hızlı bir şekilde tespit edilebilecek. Ayrıca, Java programcıları artık bu hatanın olası nedenleriyle ilgili daha detaylı açıklamaları görüntüleyebilirler. Bu özellik sayesinde programcılar, NullPointerException hatalarının nedenlerine ilişkin daha detaylı bilgi edinebilirler.
Java 14 sürümü ile getirilen bu özellik, programlama hatalarının tespitinde büyük bir avantaj sağlamaktadır. Programcılar, NullPointerException hatasını daha hızlı bir şekilde tespit ederek, kodlarında gerekli değişiklikleri yaparak daha sağlam bir yazılım üretebilirler. Bu da, daha az hata içeren ve daha iyi performans gösteren bir yazılım üretimini sağlayacaktır.
Son olarak, Java 14 ile getirilen NullPointerException hatası detaylandırma özelliği, programlama dünyasında büyük bir etki yaratacak. Bu özellik sayesinde, programcılar kod hatalarını daha kolay bir şekilde tespit edebilirler ve bu hataları daha hızlı bir şekilde gidererek daha güvenilir bir yazılım geliştirebilirler. Bu özellik, Java programlama dilinin kullanımını daha kolay ve verimli hale getirecek.
Pattern Matching for instanceof
Java 14 ile birlikte gelen özelliklerden biri de instanceof ifadelerinin daha basit bir şekilde yazılabilmesidir. Eskiden instanceof ifadesi, sadece boolean bir değer döndürürken, yeni hali ile birlikte aynı anda hem karşılaştırma yapabiliyor hem de bir değişkene atama yapılabiliyor.
Öncesinde, instanceof ifadesi sadece aşağıdaki şekilde kullanılabilirdi :
Kod | Açıklama |
---|---|
if (obj instanceof MyClass) { MyClass myObj = (MyClass) obj;} |
Nesne MyClass sınıfına aitse, işlem yapılır. |
Ancak yeni haliyle birlikte aşağıdaki gibi bir kullanım da mümkün olmuştur:
Kod | Açıklama |
---|---|
if (obj instanceof MyClass myObj) { // myObj artık direkt olarak kullanılabilir} |
Nesne MyClass sınıfına aitse, myObj değişkenine atanır. |
Bu sayede kod tekrarını engelleyen, daha az kod yazmamıza yardımcı olan instanceof ifadesi, Java 14 ile birlikte daha da kullanışlı hale gelmiştir.
Helpful NullPointerExceptions
Java 14 ile birlikte gelen özelliklerden biri de “Helpful NullPointerExceptions” özelliğidir. Bu özellik sayesinde artık uygulamalarda oluşan NullPointerException hataları daha detaylı bir şekilde açıklanabilir.
Önceden, bir uygulamada NullPointerException hatası oluştuğunda, sadece hatanın nerede oluştuğunu gösteren kısa bir mesaj alırdık. Ancak artık hatanın nedeni ve hangi değişkenin null olduğu gibi daha detaylı bilgiler de yazılım geliştiricilere sunuluyor.
Bunun yanı sıra, NullPointerException hataları artık call stack’te de daha detaylı bir şekilde gösteriliyor. Böylece hatanın nedeni üzerinde daha kolay bir şekilde çalışılabiliyor.
Özetle, Java 14’ün “Helpful NullPointerExceptions” özelliği sayesinde yazılım geliştiricileri, uygulama geliştirme sürecinde oluşan hatalarla daha kolay bir şekilde baş edebilirler ve hata ayıklama sürecini daha hızlı bir şekilde tamamlayabilirler.
Text Blocks
Java 14, geliştiricilerin çoklu satırlı string ifadelerinin daha okunaklı hale getirilmesi için Text Blocks özelliği sunar. Text Blocks, birden fazla satıra sahip bir karakter dizisi elde etmek için kullanılır. Tek tırnak veya çift tırnak yerine üç tırnak kullanılarak başlatılır ve sonlandırılır. Bu özellik, geliştiricilerin verileri daha okunaklı bir şekilde göstermelerine olanak tanır.
Text Blocks kullanarak, çoklu satırlı dize kısımlarını tek bir ifade olarak yazmak mümkündür. Ayrıca, yazılan dize kısımları, kod parçacıklarının okunabilirliğini arttırmaya yardımcı olur. Bunun yanı sıra, Text Blocks, verileri daha düzenli ve daha kolay anlaşılabilir hale getirir.
Örneğin, Text Blocks özelliğini kullanmadan önce, çoklu satırlı bir dize yazmak için her satırda ayrı ayrı tırnak işaretleri kullanmamız gerekiyordu. Ancak Text Blocks ile birlikte, bu süreç daha kolay hale geldi ve kodun okunaklılığı arttı. Ayrıca, özellikle HTML veya başka bir biçimlendirme kullanılması gerektiğinde, Text Blocks özelliği yazılan kodun okunaklığına katkıda bulunabilir.
Records Özellikleri
Java 14 sürümü ile birlikte gelen özelliklerden biri olan “Record sınıfları”, sınıfların daha kısa ve okunaklı şekilde kullanımını sağlamaktadır. Bu özellik sayesinde, sınıfların oluşturulması ve kullanımı hızlandırılmıştır.
Record sınıfları, immutability (değişmezlik) özelliğine de sahiptir. Bu sayede, sınıfların içerisindeki alanlar değiştirilemez hale gelir. Bu özellik sayesinde kod kalitesi artar ve hataların önüne geçilir.
Record sınıfları, kısa ve okunaklı şekilde kullanılabilir. Bu özellik sayesinde, kod yazarken daha az hata yapılması mümkündür. Record sınıfları, veri işleme ve depolama sınıfları için en uygun seçenektir.
Bunun yanı sıra, Record sınıfları öznitelikler (annotation) içerebilir. Bu sayede sınıfların kullanımı daha da kolay hale gelir ve hataların önüne geçilir. Record sınıfları, diğer sınıflardan farklı olarak daha basit ve hızlı bir şekilde kullanılabilir.
Target Typing
Java 14’teki bir diğer özellik olan Target Typing, metot çağrıları ve atama işlemlerinde tip belirlemenin otomatikleştirilmesi anlamına gelir. Bu özellik, Java dilindeki kodlama deneyimini kolaylaştırmak için tasarlanmıştır. Java, statik tür belirlemesi ile güçlü bir türe sahiptir, ancak bazen tip belirlemenin gereksiz olduğu durumlar vardır. Target Typing, kod yazmayı daha kolay hale getirir ve bu sayede geliştiriciler daha fazla zamana sahip olur.
Bu özellik, metot çağrılarından birinde veya atama işlemi sırasında türü belirtmeden önce, metotun veya atamanın sağ tarafındaki ifadeye bakar. Ifadeyi analiz ederek, türünü saptar ve bu türü, sol taraftaki değişkenin veya çağrılan metotun türü olarak kullanır.
Bu yapı sayesinde, kodlama işleminde daha az yazım yapmanız gerekir. Örneğin, bir nesne oluştururken, artık tür yazmanıza gerek kalmayacaktır. Eski bir tür belirlemesi şu şekildedir: List
Compact Constructor Syntax
Java 14 sürümü ile birlikte yenilenen özelliklerden biri de Compact Constructor Syntax oldu. Bu özellik, constructor tanımları sırasında daha kısa ve okunaklı bir yapıya sahip olmayı amaçlıyor. Önceki sürümlerde, constructor tanımları oldukça uzun ve karmaşıktı. Ancak Compact Constructor Syntax ile birlikte, bu tanımlar daha az kod ile yazılabilir hale geldi.
Bir örnek üzerinden gitmek gerekirse, önceki sürümlerde şu şekilde bir constructor tanımlaması yapmamız gerekiyordu:
public class Student { | public Student(String name, int age, String major) { |
---|---|
this.name = name; | this.age = age; |
this.major = major; | } |
} | // Constructor definition ends here |
Fakat artık Java 14 sürümü ile birlikte, constructor tanımlamaları daha kısa bir şekilde yapılabilir. Örneğin yukarıdaki örnek, aşağıdaki şekilde yazılabilir:
public class Student { | public Student(String name, int age, String major) { |
---|---|
this.name = name; | this.age = age; |
this.major = major; | } |
} | // Constructor definition ends here |
// Compact Constructor Syntax | |
public record Student(String name, int age, String major) {} |
Gördüğünüz gibi, Compact Constructor Syntax ile birlikte constructor tanımları daha sade ve anlaşılır hale geldi. Bu özellik, Java geliştiricilerinin hayatını kolaylaştırmaya devam ediyor.