飞镖-强迫班级设厂

时间:2019-06-18 17:07:45

标签: flutter dart

我有以下型号:

  • 作者
  • 发布
class Author implements Model {
  String name;
  String email;

  User({this.name, this.email});

  factory User.fromMap(Map data) {
    return User(
      name: data['name'] ?? 'Jon Doe'
      email: data['email'] ?? 'jon@doe.com';
    )
  }
}

class Post implements Model {
  User author;
  String content;

  User({this.name, this.email});

  factory Post.fromMap(Map data) {
    return Post(
      author: Author.fromMap(data['author']);
      content: data['content'];
    )
  }
}

我的问题是,如何告诉dart“强制”所有模型具有factory Model.fromMap(Map data)

之所以这样做,是因为我想从API(JSON)中获取这些模型。

1 个答案:

答案 0 :(得分:1)

您不能对类的 static 形状提出任何要求,因为使用该信息您将无能为力。为了呼叫 Post.fromMap,您需要专门引用Post.fromMap,而不能呼叫someVariable.fromMap()。关于能够向静态接口添加需求的讨论已有很多,但并未计划。 https://github.com/dart-lang/language/issues/356