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)不会报错
简化应该是简化不了了,
但是可以进行优化 方便以后再添加数据,
将你要判断的信息和你要返回的信息,存放到数据库里,
通过 级别 来获取对应的 数据,
这样 你后期再进行添加一个新的级别的时候 ,只需要在数据库插入一条数据
就不需要再调整代码了
可以写成枚举或常量,但这也只是减少代码量,实际效率上并没什么影响,你现在的写法运行效率上已经很高了