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.