DEV Community

Mustafa  Çam
Mustafa Çam

Posted on

java optional

Java Optional, Java 8 ile birlikte eklenen ve null değerlerine karşı bir çözüm üreten bir sınıftır. Bu yapı sayesinde null değerlerine ait özel durumların yönetimi gerekmez ve kodlarımız daha okunaklı hale gelir³².

Java'da Optional sınıfını kullanarak NullPointerException hatalarını önleyebilir ve daha güvenli kod yazma pratiğini benimseyebilirsiniz. İşte Optional'ın temel kullanımı ve bazı örnekler:

  1. Neden Optional Kullanmalıyız?

    • Java, çoğu Nesne Yönelimli (OOP) dilde olduğu gibi, tip kullanımında oldukça dikkat ve kontrol gerektirir.
    • Örneğin, bir metotun bir nesne döndürdüğünü varsayalım:
      public User getUser();
    

    Bu metot, User tipinde bir nesne döndürdüğü açıktır, ancak başka bir değer de döndürebilir: null.

    -Herhangi bir primitive olmayan tip null olarak ayarlanabildiğinden, bir geliştiricinin aşağıdaki yöntem implementasyonunu yazmasını engelleyen hiçbir şey yoktur:

      public User getUser() {
          return null;
      }
    

    Bu durum, bu yöntemi çağıran istemci için zahmetli bir durum yaratır. getUser yönteminden döndürülen User nesnesini kullanmadan önce, bir istemci nesnenin null olup olmadığını kontrol etmelidir:

      User user = getUser();
      if (user == null) {
          // null durumuyla ilgilen...
      } else {
          // user nesnesiyle bir şeyler yap...
      }
    

    Bu yaklaşım, User nesnesinin kullanımının NullPointerException (NPE) ile sonuçlanmamasını sağlar. Ancak bu da başka bir sorun yaratır: Primitive olmayan herhangi bir nesne örtük olarak null ayarlanabilir. Bu nedenle, bir yöntemden döndürülen her nesneyi kullanmadan önce geçersizlik açısından kapsamlı bir şekilde kontrol etmek zorundayız. Bu, büyük bir uygulamada mümkün olmayacağı gibi, kodumuzun temizliğini de bozar.

    • Optional, bir yöntemin ne zaman null döndürmeyi amaçladığını bilmememizden kaynaklanan bu sorunu çözer. Bu sayede, bir değerin mevcut olup olmadığını rahatlıkla kontrol edebilirsiniz².
  2. Optional Kullanımı:

    • Optional objesi üzerinde isPresent() metodunu kullanarak bir nesnenin olup olmadığını kontrol edebilirsiniz. Bu metodun döndürdüğü boolean değer true ise nesne mevcuttur ve false ise nesne mevcut değildir.
    • Bir nesnenin mevcut olduğu durumlarda nesnenin değerine ulaşmak için get() metodunu kullanabilirsiniz. Ancak bu metodun kullanımı null değerlerine ait özel durumların yönetilmemesi sonucu NullPointerException hatası alınabileceği için tavsiye edilmemektedir.
    • Ayrıca, bir nesnenin mevcut olmadığı durumlarda default değerler belirleyebilir veya farklı bir işlem yapılmasını sağlayabilirsiniz. Bunun için orElse() ve orElseGet() metodları kullanılabilir. orElse() metodu, bir nesnenin mevcut olmadığı durumda belirlenen default değerini döndürürken, orElseGet() metodu ise bir nesnenin mevcut olmadığı durumda belirlenen default değer üreten bir

Kaynak: Bing ile konuşma
(1) Java'da Optional Kullanımı » CBT - CodingByTime. https://bing.com/search?q=java+option+nedir.
(2) Java Optional Sınıfı Kullanımı - Kerteriz Blog. https://kerteriz.net/java-optional-sinifi-kullanimi/.
(3) Java'da Optional Kullanımı » CBT - CodingByTime. https://codingbytime.com/javada-optional-kullanimi/.
(4) Java 8 Optional Class Nedir? Kullanım Örneği - Burak Kutbay'ın .... https://blog.burakkutbay.com/java-8-optional-class-nedir-kullanim-ornegi.html/.

Top comments (0)