我在Dart中有类型的字符串映射,例如我在运行时修改的animals = <String, Type>{'cat':CatType, 'dog':DogType}
。有没有办法确保添加到此映射的类型在编译时或运行时实现特定的接口?像
animals = <String, Type<? implements AnimalType>>{...}
或在运行时,
void register(name, type):
if type implements AnimalType:
animals[name] = type
答案 0 :(得分:1)
不,不是真的。
Type
类不是通用的,因此您不能对此进行约束。
您可以使用dart:mirrors
库来检查Type
对象是否代表实现其他类型的类,但它很可能不值得付出努力。