gpt4 book ai didi

list - 未为类 'Map<>'定义 setter/getter 列出 map 的 setter/getter

转载 作者:行者123 更新时间:2023-12-03 03:15:07 26 4
gpt4 key购买 nike

    import 'package:meta/meta.dart';

enum Course {
math,
english,
}

class CourseData {
const CourseData({@required this.courseName, @required this.schoolCourse});

final String courseName;
final bool schoolCourse;

static const Map<Course, CourseData> allCourses = {
Course.math: CourseData(courseName: 'math', schoolCourse: true),
Course.english: CourseData(courseName: 'english', schoolCourse: true),
};

List<CourseData> get list {
List<CourseData> list;
allCourses.forEach((k, v) => list.add(v));
return list;
}
}

您好,我有一个如上所述的类(class)。我有一张 map ,我想从中列出一个 list 。所以我创建了一个 setter/getter ,但是它不起作用,因为当我尝试 print(courses.list);时,我得到一个错误

The getter 'list' isn't defined for the class 'Map<Course, CourseData>'.

最佳答案

错误是因为您最有可能尝试直接从类而不是从类的实例获取列表,因此将getter设置为静态将解决您的问题(最好是静态的,因为它已经仅访问静态值)

另外,如果您忘记初始化列表,就会出错

enum Course {
math,
english,
}

class CourseData {
const CourseData({@required this.courseName, @required this.schoolCourse});

final String courseName;
final bool schoolCourse;

static const Map<Course, CourseData> allCourses = {
Course.math: CourseData(courseName: 'math', schoolCourse: true),
Course.english: CourseData(courseName: 'english', schoolCourse: true),
};

static List<CourseData> get list {
List<CourseData> list = List<CourseData>();
allCourses.forEach((k, v) => list.add(v));
return list;
}

@override
String toString() {
return 'CourseData{courseName: $courseName, schoolCourse: $schoolCourse}';
}
}

关于list - 未为类 'Map<>'定义 setter/getter 列出 map 的 setter/getter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61424071/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com