Collectors.groupingBy doesn't accept null keys

前端 未结 6 2058
囚心锁ツ
囚心锁ツ 2020-12-15 02:49

In Java 8, this works:

Stream stream = Stream.of(ArrayList.class);
HashMap> map = (HashMap)stream.collect(Collect         


        
6条回答
  •  庸人自扰
    2020-12-15 03:17

    I had the same kind of problem. This failed, because groupingBy performs Objects.requireNonNull on the value returned from the classifier:

        Map> map = events.stream()
          .filter(event -> eventTypeIds.contains(event.getClaimEventTypeId()))
          .collect(groupingBy(ClaimEvent::getSubprocessId));
    

    Using Optional, this works:

        Map, List> map = events.stream()
          .filter(event -> eventTypeIds.contains(event.getClaimEventTypeId()))
          .collect(groupingBy(event -> Optional.ofNullable(event.getSubprocessId())));
    

提交回复
热议问题