有一段代码有很多判断不知道能不能简化一下

if(dto.getAqiGrade().equals("一级")){
            dto.setHealthImpact("一级:空气质量令人满意,基本无空气污染");
            dto.setTakeSteps("一级:各类人群可正常活动");
        }else if(dto.getAqiGrade().equals("二级")){
            dto.setHealthImpact("二级:空气质量可接受,但某些污染物可能对极少数异常敏感人群健康有较弱影响");
            dto.setTakeSteps("二级:极少数异常敏感人群应减少户外活动");
        }else if(dto.getAqiGrade().equals("三级")){
            dto.setHealthImpact("三级:易感人群症状有轻度加剧,健康人群出现刺激症状");
            dto.setTakeSteps("三级:儿童、老年人及心脏病、呼吸系统疾病患者避免长时间、高强度的户外锻炼");
        }else if(dto.getAqiGrade().equals("四级")){
            dto.setHealthImpact("四级:进一步加剧易感人群症状,可能对健康人群心脏、呼吸系统有影响");
            dto.setTakeSteps("四级:儿童、老年人及心脏病、呼吸系统疾病患者避免长时间、高强度的户外锻炼,一般人群适量减少户外运动");
        }else if(dto.getAqiGrade().equals("五级")){
            dto.setHealthImpact("五级:心脏病和肺病患者症状显著加剧,运动耐受力降低,健康人群普遍出现症状");
            dto.setTakeSteps("五级:儿童、老年人及心脏病、肺病患者应停留在室内,停止户外运动,一般人群减少户外运动");
        }else if(dto.getAqiGrade().equals("六级")){
            dto.setHealthImpact("六级:健康人群运动耐受力降低,有明显强烈症状,提前出现某些疾病");
            dto.setTakeSteps("六级:儿童、老年人和病人应停留在室内,避免体力消耗,一般人群避免户外活动");
        }

 

我觉得可以用三个字符串数分别组封装等级和提示内容,循环判断等级,等级符合就设置对应下标的提示

用map维护一个字典 key  一级二级三级N级,读取到value对象存 impact&steps

还有常量作为equals值放在前面。 因为 null.equals("a")会报错 "a".equals(null)不会报错

简化应该是简化不了了,

但是可以进行优化 方便以后再添加数据,

将你要判断的信息和你要返回的信息,存放到数据库里,

通过 级别 来获取对应的 数据,

这样 你后期再进行添加一个新的级别的时候 ,只需要在数据库插入一条数据

就不需要再调整代码了

可以写成枚举或常量,但这也只是减少代码量,实际效率上并没什么影响,你现在的写法运行效率上已经很高了