为了账号安全,请及时绑定邮箱和手机立即绑定

如何重构地图转换操作

如何重构地图转换操作

慕田峪9158850 2023-07-19 15:47:37
我写了一个关于将基本映射转换为另一个结构映射的逻辑,但是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());

    }

}


查看完整回答
反对 回复 2023-07-19
  • 1 回答
  • 0 关注
  • 105 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信