Я получаю раздражающее исключение NullPointerException при сборе данных из потока.По моему мнению, я не должен получить один, и это то, что беспокоит меня.
Вот неправильный код:
descriptiveData
.stream()
.map(Signaletiques::getContrats)
.filter(Objects::nonNull)
.collect(Collectors.toList())
descriptiveData не является нулевым и не содержит нулевых объектов , но результаты getContrats могут быть.Это вполне допустимая бизнес-ситуация, и я подумал, что обработать ее с помощью фильтра - это способ сделать это, но все, что я могу получить, это исключение:
Причина: java.lang.NullPointerException в java.util.stream.ReferencePipeline $ 3 $ 1.accept (ReferencePipeline.java:193) в java.util.ArrayList $ ArrayListSpliterator.tryAdvance (ArrayList.java:1351) в java.util.stream.ReferencePipeline.forEachWithCancel (ReferencePipeline.j::12) atjava.util.stream.AbstractPipeline.copyIntoWithCancel (AbstractPipeline.java:498) в java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:485) в java.util.stream.AbstractPipeline.wrapAndCopyIntoj:47)в java.util.stream.FindOps $ FindOp.evaluateSequential (FindOps.java:152) в java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234) в java.util.stream.ReferencePipeline.findFirst (ReferencePipeline.java: 464) at be.formatech.forhrm.appipay.synchrosignaletique.service.impl.SynchronisationAppipayUcmIdFetcherImpl.searchWorkerIdThroughContractsData (SynchronisationAppipayUcmIdFetcherImpl.java:141) `
Есть идеи?
РЕДАКТИРОВАТЬ:
Мне очень жаль!
У меня действительно был нуль в списке descriptiveData, но IntelliJ не отображал его:
Спасибо @Nikolas за действительно правильный ответ.