아마도 내부의 cityId에 따라 OperationInfos 컬렉션을 그룹화하고 cityId가 동일하면 개체의 SurgeryCount를 추가하고 반환하려고 하지만 이제 첫 번째 v1은 null입니다.
Execute v1.setSurgeryCount(v1. getSurgeryCount() + v2.getSurgeryCount()); 널 포인터를 보고했습니다. 제가 작성한 위치에 문제가 있나요?
伊谢尔伦2017-07-03 11:45:35
if v1
是null
的话,那就说明operationInfos
集合里面是有null
的,因为是要根据OperationCountVO
的cityId
进行分组,那OperationCountVO
一定不为null,建议前面直接加filter
필터링
댓글을 달고 찾아보니... 오류가 발생할 수 있는 이유는 Collectors.reducing
中的第一个参数为new OperationCountVO()
,若new
出来的OperationCountVO
对象的surgeryCount
为Integer
类型,不是基本类型的话,所以没有初始化,surgeryCount
就为null
,在做v1.getSurgeryCount() + v2.getSurgeryCount()
작업 중에 오류가 보고될 수도 있습니다
(ps: reducing
中的第二个参数BinaryOperator
,最好还是封装到OperationCountVO
객체의 경우 코드가 더 선언적인 것 같네요... 이렇게 코드를 작성하기엔 너무 보기 흉하네요... ㅎㅎ... 아니면 그냥 써서 static final로 쓰는 게 낫습니다. 어디에서나 호출할 수 있도록 변수)
예를 들어, 이 카테고리에 직접 새 카테고리를 추가하세요SurgeryCount
属性合并的BinaryOperator
,名字就叫surgeryCountMerge
다음 코드는
로 변경할 수 있습니다. 으아악이 글을 쓰고 나니 실제로 질문 작성자가 약간의 어려움을 겪을 수 있다는 것을 알았습니다. 결국 Map
嘛,所以建议不使用groupingBy
,毕竟分组返回结果是一对多这样的结构,不是一对一的结构,那直接使用toMap
를 반환하는 것뿐이므로
이것이 훨씬 빠르고 오류도 보고되지 않습니다. 하하