2016-02-12 66 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對象是否代表實現另一種類型的類,但最有可能不值得您付出努力。