我一直在尝试测试我的代码。但我收到错误“返回类型‘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');
}
}`
我会很感激任何解决方案的人
假设
_universities
是 Iterable<University>
类型,你可以这样做:
University? targetUniversity = _universities.cast<University?>().firstWhere(
(uni) => uni!.code == universityCode,
orElse: () => null,
);