Вы можете использовать flatMap
:
creditcomplex.getBorrowers().stream()
.flatMap(b -> b.getFaciliies().stream())
.flatMap(f -> Optional.ofNullable(f.getrepaymentSchedule()).stream())
.forEach(repaymentschedule -> {
double[] repayment =
amortizationService.calculateAmortizationSchedule(repaymentschedule);
double[] drawdown =
amortizationService.calculateRepaymentSchedule(repaymentschedule);
double[] outstandingProfie = amortizationService
.calculateOutstandingSchedule(repaymentschedule);
});
PS1: обратите внимание, что Optional#stream
появилось в java 9, вам может понадобиться:
optional.map(Stream::of).orElseGet(Stream::empty)
Это занято с здесь .
PS2: То, что вы делаете в forEach
, не имеет никакого эффекта (вы объявляете и инициализируете массивы внутри, но вы не можете использовать их вне l oop. Я оставил код, потому что он может быть заменен любым вычислением для вложенных элементов.
PS3: возвращение null
вместо пустого списка подвержено ошибкам, и обычно лучше go с пустой список.