2016-02-12 38 views
0

我有一个字符串映射到Dart类型的例子, animals = <String, Type>{'cat':CatType, 'dog':DogType}我在运行时修改。有没有一种方法可以确保添加到此映射的类型在编译时或运行时实现特定的接口?喜欢的东西强制执行Dart类型实现接口

animals = <String, Type<? implements AnimalType>>{...} 

或运行期间,

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

回答

1

没有,真的没有。

Type类是不通用的,所以你不能有一个约束。

您可以使用dart:mirrors库来检查Type对象是否代表实现另一种类型的类,但最有可能不值得您付出努力。