使用getter和setter方法从1到7个整数创建字符串

时间:2018-11-02 19:21:46

标签: dart flutter

我正在尝试获取1-7的整数值,并用枚举为每个值打印一天。

我从Firestore收到类映射错误,“不是封闭类中的字段”

因此,如果传入1,则给出“星期一”    如果传入2,则给出“星期二”

enum _Days {
  Monday,
  Tuesday,
  Wednesday,
  Thursday,
  Friday,
  Saturday,
  Sunday
}

class HeadingItem implements ListItem {
  String _weekday;
  final int time;
  final DocumentReference reference;

  set day(int weekday) {
    var value = _Days.values[weekday - 1].toString();
    var idx = value.indexOf(".") + 1;
    var result = value.substring(idx, value.length);
    _weekday = result;
  }

  String get day {
    return _weekday;
  }

  HeadingItem.fromMap(Map<String, dynamic> map, {this.reference})
      : assert(map['day'] != null),
        assert(map['time'] != null),
        day = map['day'], // 'day' isn't a field in the enclosing class  <--- this is the error that im stuck on...
        time = map['time'];

  HeadingItem.fromSnapshot(DocumentSnapshot snapshot) : this.fromMap(snapshot.data, reference: snapshot.reference);
}

2 个答案:

答案 0 :(得分:0)

请注意,在您的代码中,text1 = driver.find_element_by_xpath("//a[contains(., 'Text 1')]") text2 = driver.find_element_by_xpath("//a[contains(., 'Text 1')]/parent::h1/following-sibling::p/a[contains(., 'Text 2')]") 从技术上讲是day的一组方法,可让我们像使用<{1} / em>它是this成员day实际上不是成员。

因此,为了使初始化程序列表按预期工作,它已经需要访问this才能提供所需的功能(例如,设置内部成员day)。

但是,如初始化器列表中的Language Tour of Dart中所述,初始化器列表无权访问this。相反,我们应该将初始化程序列表视为在实例化期间分配给_weekday成员的值。

答案 1 :(得分:0)

更改

owner: self

对此

String get day {
  return _weekday;
}