0

我有一个与 Dart 1.22.0 中的新实例化绑定规则相关的问题。我有一个BaseModel类,它采用一个参数化类型,称为ParentType本身 extends BaseModel

并非所有 BaseModel 都有特定的 ParentType,如果我将 BaseModel 实例化为 ParentType,那么我会无限破坏规则。

这是一个例子:

abstract class BaseModel<ParentType extends BaseModel> {
    ParentType parentModel
}

class ParentModel extends BaseModel<BaseModel<...>> {}

class ChildModel extends BaseModel<ParentModel> {}

我现在将忽略该规则,因为这个问题似乎对开发没有任何影响。

4

2 回答 2

2

有点取决于您想要完成的任务,但假设您希望ParentModel可用作任何类型BaseModel(该parentModel字段将始终位于null),那么这可能就是您想要的:

abstract class BaseModel<ParentType extends BaseModel<ParentType>> {
  ParentType parentModel;
}

class ParentModel extends BaseModel<Null> {}

class ChildModel extends BaseModel<ParentModel> {}

如果没有,我需要更多地了解您的问题的限制和目标是什么。

于 2017-02-17T19:21:00.147 回答
0

这可能会做你想要的:

abstract class BaseModel<ParentType extends BaseModel<Null>>
于 2017-02-17T17:56:56.297 回答