Попробуйте:
return Optional.ofNullable(mapOfIntAndListOfObjects.getOrDefault(spn))
.map(List::stream)
.map(Stream::findFirst)
.map(MyObject::getPayDate)
.orElse(null); // or whatever default to return in case nothing found
Полностью использует функциональность Optional
, как и предполагалось.т.е. никакие списки / значения по умолчанию не нужны нигде (кроме выбора того, что возвращать, когда ничего не найдено).