我的枚举在类构造函数中变为null是否有原因?

时间:2019-01-27 23:12:05

标签: enums dart flutter

我在User类构造函数中包含一个枚举。在新实例中,该类中的该字段变为空。

我直接设置枚举值。我随后打印班级字段。它为空。

enum Genders {
  MALE,
  FEMALE,
  OTHER
}

class User extends SharedUser {
  User(
      String firstName,
      Genders gender,
  ) : super (firstName: firstName);

  Genders gender;
}

final User user = User(
    'Bob',
    Genders.OTHER
);
print(user.firstName); // Bob
print(user.gender); // null

预期:user.gender将作为Genders打印。OTHER

实际:user.gender打印为空

1 个答案:

答案 0 :(得分:2)

Dart不会神奇地将参数构造函数分配给类字段。您必须自己指定这种行为。

这样,您的User构造函数应变为:

User(String firstName, this.gender): super(firstName: firstName);