小编Tho*_* W.的帖子

如何使用Dart中的镜像获取泛型类型变量的具体类型?

假设我有一个ListString这样的.

var myList = new List<String>();
Run Code Online (Sandbox Code Playgroud)

我怎样才能弄清楚,myListListString使用镜子S'


我尝试使用它typeVariables,ClassMirror但镜像似乎只是描述了泛List类.

InstanceMirror im = reflect(myList); // InstanceMirror on instance of 'List'
ClassMirror cm = im.type; // ClassMirror on 'List'
print(cm.typeVariables['E']) // TypeVariableMirror on 'E'
Run Code Online (Sandbox Code Playgroud)

我也在文档中找到了这个,但我还没有找到一个ClassMirror访问originalDeclaration不会抛出的实例NoSuchMethodError.

最终的ClassMirror originalDeclaration

这种类型的原始声明上的镜像.

对于大多数课程,他们是他们自己的原始声明.但是,对于泛型类,原始类声明(具有未绑定的类型变量)和泛型类(具有绑定类型变量的实例化)之间存在区别.

generics dart dart-mirrors

3
推荐指数
1
解决办法
1312
查看次数

标签 统计

dart ×1

dart-mirrors ×1

generics ×1