Bu Sayfayı Paylaş:

Kavram

Optional

Tanım: Null olma ihtimali olan nesneleri saklamak için kullanılan bir sınıf. NullPointerException oluşmasını engellemek ve sürekli null kontrolü yapmamayı sağlamaktadır. isPresent() method'u ile null olup olmadığı öğrenilebilir ve get() ile nesne alınabilir.

Örnek

Optional Döndüren Bir Method Örneği

Rastgele bir kod üreten bir method yapıyoruz. Rastgele üretilen sayı 50'den büyük ise kodu döndürüyoruz, değil ise null döndürüyoruz :
package com.test.optional;

import java.util.Optional;
import java.util.Random;

public class OptionalTest {
	
	public Optional<String> generatorCode(){
		
		Random r=new Random();
		int n=r.nextInt(100);
		if(n>50){
			return Optional.of("code_"+n);
		}
		return Optional.empty();
	}
	
	public static void main(String[] args) {
		
		OptionalTest test=new OptionalTest();
		Optional<String> code=test.generatorCode();
		if(code.isPresent()){
			System.out.println("code:"+code.get());
		}else{
			System.out.println("code is null");
		}
		
	}

}
Optional.of("code_"+n); ifadesi kodun üretildiği ve dolu olduğu zaman geriye kodu döndürmeye yarar. return Optional.empty(); ise değer olmadığı zaman null olan bir Optional döndürür. Main method'unda Optional code=test.generatorCode(); şeklinde rastgele bir sonuç alınabilir. code.isPresent() kodun üretilip üretilmediğini bildirir. Eğer kod üretildi ise isPresent true verir. Üretilmedi ise isPresent false değerini verir. ifPresent kontrolü if else yapmadan lambda ile de yapılabilir:
ifPresent(a -> System.out.println(a));  
Yukarıda eğer dönüş null değilse ekrana basılacaktır. Null ise hiç bir işlem yapılmayacaktır. Eğer default bir değeriniz var ise aşağıdaki gibi yapabilirsiniz :
String codeString=code.orElse("code_0");
System.out.println("codeString:"+codeString);
orElse method'u eğer değer null ise size code_0'ı verir. Null değilse de değeri verir.



Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir