Необязательный означает, что значение не должно быть там.Это в основном там, чтобы заставить вызывающего явным образом решить, что делать, когда значение не существует.В вашем случае вы можете указать значение по умолчанию:
jProgressBar1.setValue(tL.retrieveTotalHours().orElse(0));
Однако ваш метод retrieveTotalHours
, вероятно, не должен возвращать Optional в первую очередь.Stream.reduce
возвращает Optional.empty()
, когда поток пуст, но в вашем случае он, вероятно, должен возвращать 0
, когда список задач пуст.Таким образом, вы можете сделать:
public int retrieveTotalHours(){
return taskList.stream().map(e -> e.getTaskHours()).reduce(0, Integer::sum);
}
(Аргумент 0
- это идентификатор, который возвращается, когда поток пуст.)
или даже:
public int retrieveTotalHours(){
return taskList.stream().mapToInt(e -> e.getTaskHours()).sum();
}