Collectors.toMap(),key可以为null,但value不能为null,否则抛 空指针异常 NullPointerException

解决方案
- 使用Optional类处理value,优点是可以继续使用Collectors.toMap,缺点是为null的value会被改,而这可能违反业务上的期望。
collection.stream().collect(Collectors.toMap(AccountBaseDTO::getAccountId, accountBaseDTO -> Optional.ofNullable(accountBaseDTO.getAccountType()).orElse(""))); - 使用 Stream#collect(java.util.function.Supplier, java.util.function.BiConsumer<R,? super T>, java.util.function.BiConsumer<R,R>)方法,可以保留为null的value
list.stream().collect(HashMap::new, (map, item) -> map.put(item.getAccountId(), item.getAccountType()),HashMap::putAll);