if条件习惯性忘记考虑else情况
程序员文章站
2022-06-01 12:46:11
...
long recommendClassId = classId;
List<SchoolClass> schoolClassList = schoolClassMapper.getAvailableClassByTeacherId(classIds, GradeUtils.getGraduateYear(),
SchoolClassStatus.Normal.getId());
List<SchoolClass> schoolClasses = Lists.newArrayListWithCapacity(schoolClassList.size());
SchoolClass recommendSchoolClass = schoolClassList
.stream()
.filter(schoolClass -> schoolClass.getId() == recommendClassId)
.findFirst().orElse(null);
if (!Objects.isNull(recommendSchoolClass)){
schoolClasses.add(recommendSchoolClass);
schoolClassList.remove(recommendSchoolClass);
schoolClasses.addAll(schoolClassList);
}
log.info("classes sorted result:{}", schoolClasses);
//对查到的集合进行过滤,如果是小学,则1-6年级为有效,如果是初中,则7-9年级为有效
List<SchoolClass> availableSchoolClassList = schoolClasses.stream().filter(schoolClass ->
GradeUtils.isClassAvailable(schoolClass.getGrade(),
schoolClass.getGradeStage())).collect(Collectors.toList());
此段代码,if判断后没有考虑else的情况,导致集合schoolClasses 可能是empty。
避免此情况可以追加else处理相同逻辑。
推荐阅读