未为类“ Map <>”定义吸气剂

时间:2020-04-25 10:12:15

标签: list dictionary flutter dart getter

    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;
  }
}

您好,我有一个如上所述的课程。我有一张地图,我想从中列出一个清单。因此,我创建了一个吸气剂,但是它不起作用,因为当我尝试print(courses.list);时遇到错误

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

2 个答案:

答案 0 :(得分:2)

您没有初始化列表。

更改以下行:

List<CourseData> list;

具有以下一项:

List<CourseData> list = [];

答案 1 :(得分:1)

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

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

public class Api {
    int results;
    Statistics statistics;
}