相关疑难解决方法(0)

如何保证 Dart 中的某个命名构造函数?

假设我有具体的类 Cat、Dog 和 Parrot,以及以下接口:

class HasGuid {
  HasGuid.fromId(String id);
}
Run Code Online (Sandbox Code Playgroud)

我的目标是保证 Cat、Dog 和 Parrot 都有一个fromId命名构造函数。所以,我可以拨打这样的电话:

Cat.fromId("Whiskers") =returns> [A Future<Cat> object with id "Whiskers"]
Dog.fromId("Fido")     =returns> [A Future<Dog> object with id "Fido"]
Parrot.fromId("Polly") =returns> [A Future<Parrot> object with id "Poly"]
Run Code Online (Sandbox Code Playgroud)

fromId正在通过网络进行呼叫,因此我将其作为Future. 我基本上想要一份合同,规定任何混合/扩展/实现/任何类的HasGuid类都将具有fromId. fromId类中的位置T将接受一个身份字符串并返回一个Future<T>.

dart

8
推荐指数
2
解决办法
4060
查看次数

如何在抽象类中声明工厂构造函数?

我想声明,但不想在抽象类中定义工厂构造函数。

就我而言,我想创建一个方法,该方法可以接受实现该String toJson()方法的任何类以及fromJson(Map<String, dynamic> data)工厂构造函数。

有什么办法可以在Dart中实现?我正在寻找类似以下内容的东西,这是无效的Dart代码:

abstract class JsonSerializable {
  factory fromJson(Map<String, dynamic> data);
  String toJson();
}
Run Code Online (Sandbox Code Playgroud)

dart

6
推荐指数
2
解决办法
305
查看次数

标签 统计

dart ×2