flutter - Dart - 强制一个类有一个工厂

标签 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) 中获取这些模型。

最佳答案

您不能对类的静态 形状提出任何要求,因为您无法利用该信息完成任何事情。为了调用 Post.fromMap 你需要具体引用Post.fromMap,你不能调用someVariable.fromMap( )。已经有一些关于能够向静态接口(interface)添加需求的讨论,但没有计划。 https://github.com/dart-lang/language/issues/356

关于flutter - Dart - 强制一个类有一个工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56653980/

相关文章:

Flutter/Dart 在运行时导入文件

firebase - 如何从文档中查询特定数据字段

flutter - 如何使用 StateNotifierProvider 中的 StreamProvider?

升级后 Flutter 不再工作

dart - Streambuilder 没有收到一些快照数据

visual-studio-code - "Flutter Code extension not installed"但已安装数月

flutter - 如何动态调整 CustomPainter 的大小

Flutter-网络镜像到文件

dart - 在注释类中插入字符串

flutter - 参数类型 'void Function(Hospital)' 无法分配给参数类型 'void Function(Object?)?' 。 flutter 下拉菜单