Java 如何重构映射转换操作
我写了一个关于将基本映射转换为另一个结构映射的逻辑,但是Sonarint指出它需要重构,下面是代码:Java 如何重构映射转换操作,java,Java,我写了一个关于将基本映射转换为另一个结构映射的逻辑,但是Sonarint指出它需要重构,下面是代码: public static Map<List<String>, String> toStockMap(List<Map<String, Object>> rows) { Map<List<String>, String> stockMap = new HashMap<>(); if (Collec
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;
}
以下为Sonarint评论:
我应该如何改进它?谢谢您不需要枚举行入口集来检查是否存在键。你可以大大简化它,比如
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());
}
}
第71行是哪一部分?