我写了一个关于将基本映射转换为另一个结构映射的逻辑,但是SonarLint评论它需要重构,这里是代码:public static Map<List<String>, String> toStockMap(List<Map<String, Object>> rows) { Map<List<String>, String> stockMap = new HashMap<>(); if (CollectionUtils.isEmpty(rows)) { return stockMap; } for (Map<String, Object> row : rows) { String stock = null; String itemId = null; String modelId = null; for (Map.Entry<String, Object> cell : row.entrySet()) { if (cell.getKey().equals("stock")) { stock = cell.getValue().toString(); } if (cell.getKey().equals("itemid")) { itemId = cell.getValue().toString(); } if (cell.getKey().equals("modelid")) { modelId = cell.getValue().toString(); } } if (stock != null && itemId != null && modelId != null) { stockMap.put(Arrays.asList(modelId, itemId), stock); } } return stockMap;}下面是 sonarlint 的评论:我应该如何改进呢?谢谢
1 回答
暮色呼如
TA贡献1853条经验 获得超9个赞
那么您不需要枚举rowentrySet 来检查键是否存在。你可以大大简化它,比如
for (Map<String, Object> row : rows) {
Object stock = row.get("stock");
Object itemId = row.get("itemid");
Object modelId = row.get("modelid");
if (stock != null && itemId != null && modelId != null) {
stockMap.put(Arrays.asList(modelId.toString(), itemId.toString()),
stock.toString());
}
}
添加回答
举报
0/150
提交
取消