java-ee - java8의 Collectors.reducing()
三叔
三叔 2017-07-03 11:43:35
0
1
1341
으아악

아마도 내부의 cityId에 따라 OperationInfos 컬렉션을 그룹화하고 cityId가 동일하면 개체의 SurgeryCount를 추가하고 반환하려고 하지만 이제 첫 번째 v1은 null입니다.
Execute v1.setSurgeryCount(v1. getSurgeryCount() + v2.getSurgeryCount()); 널 포인터를 보고했습니다. 제가 작성한 위치에 문제가 있나요?

三叔
三叔

모든 응답(1)
伊谢尔伦

if v1null的话,那就说明operationInfos集合里面是有null的,因为是要根据OperationCountVOcityId进行分组,那OperationCountVO一定不为null,建议前面直接加filter필터링

으아악

댓글을 달고 찾아보니... 오류가 발생할 수 있는 이유는 Collectors.reducing中的第一个参数为new OperationCountVO(),若new出来的OperationCountVO对象的surgeryCountInteger类型,不是基本类型的话,所以没有初始化,surgeryCount就为null,在做v1.getSurgeryCount() + v2.getSurgeryCount()작업 중에 오류가 보고될 수도 있습니다

(ps: reducing中的第二个参数BinaryOperator,最好还是封装到OperationCountVO 객체의 경우 코드가 더 선언적인 것 같네요... 이렇게 코드를 작성하기엔 너무 보기 흉하네요... ㅎㅎ... 아니면 그냥 써서 static final로 쓰는 게 낫습니다. 어디에서나 호출할 수 있도록 변수)

예를 들어, 이 카테고리에 직접 새 카테고리를 추가하세요SurgeryCount属性合并的BinaryOperator,名字就叫surgeryCountMerge

으아악

다음 코드는

로 변경할 수 있습니다. 으아악

이 글을 쓰고 나니 실제로 질문 작성자가 약간의 어려움을 겪을 수 있다는 것을 알았습니다. 결국 Map嘛,所以建议不使用groupingBy,毕竟分组返回结果是一对多这样的结构,不是一对一的结构,那直接使用toMap를 반환하는 것뿐이므로

를 클릭하십시오. 으아악

이것이 훨씬 빠르고 오류도 보고되지 않습니다. 하하

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿