Java 8 Optional Class Nedir? Kullanım Örneği
Java 8 ile gelen yeniliklere bakmaya devam ediyorum. Bu yazıda Optional Class kavramından bahsederek örneklendirmeye çalışacağım.
Optional Class kullanımı oldukça kolay ve kullanışlı bir yöntemdir. Yazılımda oluşan NullPointerException hatalarını en aza indirmeyi sağlamayı amaçlayan bir yapıdır. Class’larımızın null olmasının kontrolünü kolaylaştıran Optional Class null olamaz mı? Elbette olabilir ancak Optional Class null değer alırsa o classın yönetimi de kolaylaşmaktadır.
Optional Clas sayesinde;
- Null kontrolü yapılmasına gerek kalmaz.
- Kolay kod yazımı.
- Kod okunabilirliğinin kolaylaşması.
Optional Kullanımı
Optinal Class’ı kullanarak bir nesne yaratmanın 3 farklı çeşidi bulunmakta. Bu çeşitlilik Optional nesnemizin null olup olmayacağını tanımlarken belirlememizi sağlamakta.
Parametre | Açıklama |
---|---|
empty | boş bir nesne oluşturur. |
of | null değer kesinlikle alamaz |
ofNullable | null değer alabilir |
Optional Özelliği Olan Bir Nesne Oluşturmak
Boş bir nesne oluşturma işlemi;
Optional<Kullanici> kullanici= Optional.empty();
Null değer almasını kesinlikle istemeyeceğimiz nesne oluşturmak;
Optional<Kullanici> kullanici = Optional.of(kullanici);
Null değer alabilecek olan Optional nesnesi;
Optional<Kullanici> kullanici= Optional.ofNullable(kullanici);
olarak yapılmaktadır.
Optional Nesnenin Değerlerini Alabilmek
Optional bir nesnenin değerlerine ulaşmak için .get() yazarak ve ardından tekrar nokta koyarak ilgili değişkenine erişebilmeniz mümkün olmaktadır.
String ad=kullanici.get().ad; String soyad=kullanici.get().soyad;
!Önemli not. get() özelliği Optional nesnemizin null olmadığı zamanlarda çalışır. Diğer hallerde hata fırlatır.
Optional Nesne’yi Kontrol Edebilmek
Oluşturuğumuz nesnelerin içersinde hangi değerler olup olmadığını hala bilemeyebiliriz. Özellike null değer alabilen ofNullable özelliği almuş olan nesne için null kontrolü yapmak zorunlu olabilir. Optional nesne kullanıyorsak bu türe sahip nesnelerin kontrolünü sağlamak için özel parametreler kullanarak yapabilmekteyiz. Bu parametreler;
Parametre | Açıklama |
---|---|
isPresent() | null kontorülüdür. Boş ise false, Dolu ise true değerini döndürür. |
orElse() | kullanici.get().ad().orElse(“burak”) şeklinde bir şart ile true ya da false değer döndürerek gerekli nesneyi seçebilirsiniz |
orElseGet() | Nesne içerisinde eğer bir değer null ise varsaydığımız değeri göndeerebiliyoruz. |
ifPresent() | Eğer null değilse istediğimiz işlemleri ise bu parametre ile yapmaktayız. |
Örnek:
public static void main(String[] args) { Optional<String> kullanici= Optional.of("Burak"); Optional<String> kullanici2= Optional.empty(); if (kullanici.isPresent()) { System.out.println("Değer bulunmakta"); } else { System.out.println("Değer bulunamıyor."); } kullanici.ifPresent(g -> System.out.println("Kullanıcı Adı Var.")); kullanici2.ifPresent(g -> System.out.println("Kullanıcı Adı Var.")); }
Çıktı:
Değer bulunmakta. Kullanıcı Adı Var.
Yukarıdaki tablodaki özellikleri kullanarak değerleri yönetebilmekteyiz.
Filtre Kullanımı
Optional nesnemizde de Java 8’de gelen filtreleme işlemi yapılabilmektedir.
Optional<Kullanici> kullanici= Optional.ofNullable(null); kullanici .filter(k -> k.yas() > 25) .ifPresent(System.out::println);
No Comment! Be the first one.