Map<String,String> orginfoMap = orgInfos.stream().collect(Collectors.toMap(OrgInfo::getPathCode,OrgInfo::getFinacialCode));空指针
时间: 2023-11-27 10:53:30 浏览: 73
这段代码中可能会出现空指针异常的原因是orgInfos或者orgInfos中的某一个元素为null。
你可以在调用stream之前,先检查orgInfos是否为null,或者使用Optional进行空值处理,例如:
```
Map<String,String> orginfoMap = Optional.ofNullable(orgInfos)
.orElse(Collections.emptyList())
.stream()
.filter(Objects::nonNull)
.collect(Collectors.toMap(OrgInfo::getPathCode,OrgInfo::getFinacialCode));
```
这里使用了`Optional.ofNullable()`方法来处理可能为null的orgInfos,如果orgInfos为null,则返回一个空的List。接着使用`filter(Objects::nonNull)`方法过滤掉为空的元素。这样可以避免空指针异常。
相关问题
Map<String,String> orginfoMap = orgInfos.stream().collect(Collectors.toMap(OrgInfo::getPathCode,OrgInfo::getFinacialCode));的getFinacialCode空指针
这个问题可能是因为 `orgInfos` 中某个 `OrgInfo` 对象的 `getFinacialCode()` 方法返回了 `null`,导致了空指针异常。你可以在调用 `getFinacialCode()` 方法之前,先判断一下该对象是否为 `null`,或者在 `toMap` 中使用一个 lambda 表达式,将 `null` 值转换为一个默认值,例如:
```
Map<String, String> orginfoMap = orgInfos.stream()
.collect(Collectors.toMap(OrgInfo::getPathCode, orgInfo -> orgInfo.getFinacialCode() != null ? orgInfo.getFinacialCode() : ""));
```
这样,如果某个 `OrgInfo` 对象的 `getFinacialCode()` 方法返回了 `null`,那么对应的 `value` 就会被设置为一个空字符串。你也可以根据实际需求,将 `null` 转换成其他默认值。
List<ZbcQsjdrzlbaTjQueryResult> queryResultList = zbglXtZbcjsjgMapper.queryjdrzlZzdw(zbcQsjdrzlbaTjQueryParam); Map<String, String> jdrzlRybmMap = queryResultList.stream().collect(Collectors.toMap(ZbcQsjdrzlbaTjQueryResult::getRybm , ZbcQsjdrzlbaTjQueryResult::getDwbm)); Map<String, String> jdrzlDwmcMap = queryResultList.stream().collect(Collectors.toMap(ZbcQsjdrzlbaTjQueryResult::getRybm , ZbcQsjdrzlbaTjQueryResult::getDwmc)); 优化一下代码
可以考虑将两个stream的操作合并为一个,避免重复遍历queryResultList。具体实现如下:
```
Map<String, String> jdrzlRybmMap = new HashMap<>();
Map<String, String> jdrzlDwmcMap = new HashMap<>();
queryResultList.forEach(result -> {
jdrzlRybmMap.put(result.getRybm(), result.getDwbm());
jdrzlDwmcMap.put(result.getRybm(), result.getDwmc());
});
```
这样可以将查询结果只遍历一次,并且使用forEach代替了stream操作,提高了代码的性能和可读性。
阅读全文