欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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处理相同逻辑。