Давайте исправим код:
public static Optional<Double> getLatestResult(Subcontractor sub) {
return getResult(sub.getLastBusinessYear()).or(() -> getResult(sub.getPenultimateBusinessYear()));
}
У вас есть две функции, обе они возвращают Optional
. Вам нужно только первое со значением. Optional.or
вызовет Поставщика, если у него нет значения, в противном случае он возвращает себя.
Если вы используете Java 8, хорошо ...
public static Optional<Double> getLatestResult(Subcontractor sub) {
Optional<Double> result = getResult(sub.getLastBusinessYear());
if (result.isPresent())
return result;
return getResult(sub.getPenultimateBusinessYear());
}
Получите первое результат, проверьте, присутствует ли он, если да, верните его.
Если нет, верните второй результат.