나는 다음과 같은 흐름이 : service.type
문자열이며, type
도 문자열입니다자바 스트림 필터 널 포인터 문제
services = services.stream()
.filter(service -> (service.getType().isEmpty() || service.getType().equals(type)))
.collect(Collectors.toList());
. 내 필터는 type
이 null (또는 단순히 공백)이거나 주어진 유형의 모든 서비스를 반환해야합니다.
이 나에게의 오류가 발생합니다 :
java.lang.NullPointerException이 : com.eternity.service.OrderService.lambda $ getServicesForOrder $ 0 (0 OrderService.java:140) ~ [클래스에서 널 (null)을/: na] 에서 java.util.stream.ReferencePipeline $ 2 $ 1.accept (ReferencePipeline.java:174) ~ [na : 1.8.0_77] at java.util.ArrayList $ ArrayListSpliterator.forEachRemaining (ArrayList.java:1374) ~ [na : 1.8.0_77] at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:481) ~ [없음 : 1.8.0_7 7 java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:471) 에서 ~ [NA : 1.8.0_77] java.util.stream.ReduceOps $ ReduceOp.evaluateSequential (ReduceOps.java:708)에서 ~ [na : 1.8.0_77] at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234) ~ [na : 1.8.0_77] at java.util.stream.ReferencePipeline.collect (ReferencePipeline.java) : 499) ~ [NA : 1.8.0_77] com.eternity.service.OrderService.getServicesForOrder (OrderService.java:141) ~ [클래스/: NA]에서
나는 무엇을 놓치고?
디버깅을 시도 했습니까? 공정하게 람다 식으로 시도하지 않았습니다. – AxelH