慕田峪9158850
2023-07-19 15:47:37
我寫了一個(gè)關(guān)于將基本映射轉(zhuǎn)換為另一個(gè)結(jié)構(gòu)映射的邏輯,但是SonarLint評(píng)論它需要重構(gòu),這里是代碼: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 的評(píng)論:我應(yīng)該如何改進(jìn)呢?謝謝
1 回答

暮色呼如
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
那么您不需要枚舉rowentrySet 來(lái)檢查鍵是否存在。你可以大大簡(jiǎn)化它,比如
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());
}
}
添加回答
舉報(bào)
0/150
提交
取消