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'];
)
}
}
我的问题是,我怎样才能告诉飞镖“强制”所有模型都有一个factory Model.fromMap(Map data)
?
我想这样做的原因是我想从 API (JSON) 中获取这些模型。
解决方案
您不能对类的静态形状提出任何要求,因为您无法使用该信息完成任何事情。为了调用 Post.fromMap
你需要特别提到Post.fromMap
,你不能调用someVariable.fromMap()
。已经有一些关于能够向静态接口添加需求的讨论,但没有任何计划。https://github.com/dart-lang/language/issues/356
推荐阅读
- node.js - 如何在 dto [NestJS] 中设置实体类型?
- javascript - 无法让 Bootstrap 作为 jQuery 插件工作
- python - IndexError:索引 0 处的掩码 [...] 的形状与索引 0 处的索引张量 [...] 的形状不匹配
- r - 下限未知时如何集成一个函数?
- ios - 无法在 iOS 14.6 中使用 siri 快捷方式
- java - Java 的 JPanel 中的像素大小不一致
- cookies - 如何允许第三方网站通过 iframe 或其他机制设置 cookie
- scheme - 方案中的向量
- qml - QGeoCoordinate:没有这样的文件或目录,找不到.pro文件
- java - Java Spring Boot - 项目'org.springframework.boot:spring-boot-starter-parent:2.5.0'未找到错误