根据闭包上下文的要求,返回类型“Null”不是“University”

问题描述 投票:0回答:1

我一直在尝试测试我的代码。但我收到错误“返回类型‘Null’不是‘大学’,这是闭包上下文所要求的。

关于如何解决这个问题有什么建议吗?

这是代码:

static Future<void> deleteFaculty(String universityCode, String facultyCode) async {
        University? targetUniversity = _universities.firstWhere(
              (uni) => uni.code == universityCode,
          orElse: () => null, // doesn't work.
        );

        if (targetUniversity != null) {
          int initialLength = targetUniversity.faculties.length;
          targetUniversity.faculties.removeWhere((f) => f.code == facultyCode);
          int finalLength = targetUniversity.faculties.length;

          if (finalLength < initialLength) {
            await saveUniversities(_universities); // Await saving universities after modification
          } else {
            throw Exception('Faculty $facultyCode not found in university ${targetUniversity.name}');
          }
        } else {
          throw Exception('University $universityCode not found');
        }
      }`


我会很感激任何解决方案的人

flutter dart conditional-statements null
1个回答
0
投票

假设

_universities
Iterable<University>
类型,你可以这样做:

University? targetUniversity = _universities.cast<University?>().firstWhere(
      (uni) => uni!.code == universityCode,
  orElse: () => null, 
); 
© www.soinside.com 2019 - 2024. All rights reserved.