优化代码: if bblengthlength 170 List list = List map2getalarms; Map t = Map listget0; Map mainMap = Map tgetcreateRules; entity_id
优化后的代码:
if (bblength.length() < 168) { jedis.set("Error", "PassRule"); } else { List<Map<String, Object>> alarms = (List<Map<String, Object>>) map2.get("alarms"); for (Map<String, Object> alarm : alarms) { String entityId = (String) alarm.get("id"); Map<String, Object> createRules = (Map<String, Object>) alarm.get("createRules"); for (String severity : Arrays.asList("MAJOR", "MINOR", "CRITICAL")) { JSONObject severityJson = (JSONObject) createRules.get(severity); if (severityJson != null) { JSONObject conditionJson = (JSONObject) severityJson.get("condition"); Map<String, Object> conditionMap = parseJSON2Map(conditionJson.toString()); List<Map<String, Object>> conditions = (List<Map<String, Object>>) conditionMap.get("condition"); int operatorNum = ListNum(conditions); if (operatorNum == 1) { GreaterOrLessOrEqual(conditions, 1); String defaultValueStr = String.valueOf(defaultValue); jedis.mset("devicename", devicename, "entity_id", entityId, "model", severity, "operation", operation, "defaultValue", defaultValueStr, "i", String.valueOf(1)); MySqlRuleInset(devicename, entityId, severity, operation, defaultValue, 1); } else if (operatorNum == 2 || operatorNum == 3) { ForGreaterOrLessOrEqual(conditions, operatorNum, severity); } } } } }
优化说明:
- 使用for-each循环遍历alarms列表和severity列表,减少重复代码和代码行数。
- 在循环中直接获取entityId、severityJson和conditionJson,减少重复代码和代码行数。
- 使用Arrays.asList方法创建severity列表,减少重复代码和代码行数。
- 将获取conditionMap和operatorNum的代码移到if语句外部,避免重复计算。
- 删除无用的注释和打印语句。
原文地址: https://www.cveoy.top/t/topic/bIe3 著作权归作者所有。请勿转载和采集!