我的枚举在类构造函数中变为 null 是不是有原因?
Posted
技术标签:
【中文标题】我的枚举在类构造函数中变为 null 是不是有原因?【英文标题】:Is there a reason my enum is becoming null in a class constructor?我的枚举在类构造函数中变为 null 是否有原因? 【发布时间】:2019-06-20 23:17:10 【问题描述】:我在 User
类构造函数中包含一个枚举。类中的该字段在新实例中变为 null。
我直接设置枚举值。之后我打印类字段。为空。
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 打印为 null
【问题讨论】:
枚举不是复数形式。 ***.com/q/29567236 【参考方案1】:Dart 不会神奇地将参数构造函数分配给类字段。您必须自己指定此类行为。
因此,您的 User 构造函数应该变成:
User(String firstName, this.gender): super(firstName: firstName);
【讨论】:
以上是关于我的枚举在类构造函数中变为 null 是不是有原因?的主要内容,如果未能解决你的问题,请参考以下文章
在类构造函数线程中启动 std::thread 是不是安全?