Я просто пытаюсь понять работу opture.orelse. < /p>
Код: Выделить всё
public static void main (String [] a) {
PoJo poJo1=getNullPoJo().orElse(getDefaultPoJo());//Case 1
System.out.println("pojo1 Got "+poJo1.getVariable());
PoJo poJo2=getLoadedPoJo().orElse(getDefaultPoJo());//Case 2
System.out.println("pojo2 Got "+poJo2.getVariable());
}
private static Optional
getNullPoJo() {
System.out.println("Executing getNullPoJo");
Optional optional=Optional.empty();
return optional;
}
private static Optional getLoadedPoJo() {
System.out.println("Executing getLoadedPoJo");
PoJo poJo =new PoJo();
poJo.setVariable("Loaded");
Optional optional=Optional.of(poJo);
return optional;
}
private static PoJo getDefaultPoJo() {
System.out.println("Executing getDefaultPoJo");
PoJo poJo =new PoJo();
poJo.setVariable("Default");
return poJo;
}
Executing getNullPoJo
Executing getDefaultPoJo
pojo1 Got Default
Executing getLoadedPoJo
выполнение getDefaultPojo < /p>
Pojo2 получил загруженную < /p>
< /blockquote>
мой ожидаемый выход: < /strong> < /p>
getnullpojo < /p>
getDefaultPojo
pojo1 получил по умолчанию
выполнение getLoadedPojo
Pojo2 загружен
Я не хочу, чтобы вызов getDefaultpo in >
Подробнее здесь: https://stackoverflow.com/questions/567 ... as-if-else