Кроме того, благодаря использованию Optional мне не нужно проверять нулевой контроль.
Например: мой первый кодовый блок
public Boolean x() {
if (...) {
return true;
} else if (...) {
return false;
} else {
return null;
}
}
public void y() {
Boolean result = x();
if (result != null && result == true) {
System.out.println(true);
} else if (result != null && result == false) {
System.out.println("false");
} else {
System.out.println("null");
}
}
После этого, используя опционально мой код
public Optional<Boolean> x2() {
if (...) {
return Optional.of(Boolean.TRUE);
} else if (...) {
return Optional.of(Boolean.FALSE);
} else {
return Optional.empty();
}
}
public void y2() {
Optional<Boolean> result = x2();
if (result.equals(Optional.of(Boolean.TRUE))) {
System.out.println(true);
} else if (result.equals(Optional.of(Boolean.FALSE))) {
System.out.println("false");
} else {
System.out.println("null");
}
}
Я удалил нулевой элемент управления