强制Dart类型实现接口

时间:2016-02-12 16:42:41

标签: types interface dart

我在Dart中有类型的字符串映射,例如我在运行时修改的animals = <String, Type>{'cat':CatType, 'dog':DogType}。有没有办法确保添加到此映射的类型在编译时或运行时实现特定的接口?像

这样的东西
animals = <String, Type<? implements AnimalType>>{...}

或在运行时,

void register(name, type):
  if type implements AnimalType:
    animals[name] = type

1 个答案:

答案 0 :(得分:1)

不,不是真的。

Type类不是通用的,因此您不能对此进行约束。

您可以使用dart:mirrors库来检查Type对象是否代表实现其他类型的类,但它很可能不值得付出努力。