获取调用超级构造函数的类型

时间:2014-12-26 05:07:13

标签: dart

如果是由其他类扩展的类

class x{
  x(){
    Type calledByClass = ??
  }
}

class y extends x{
  y:super();
}

class z extends x{
  z:super();
}

使用镜像,是否可以在x的构造函数中获取调用超级构造函数的类型?

例如new z()会初始化calledByClass以输入z

请注意,我的超级构造函数不能有参数!

1 个答案:

答案 0 :(得分:2)

void main() {
  new x();
  new y();
  new z();
}

class x {
  x() {
    Type calledByClass = this.runtimeType;
    print("calledByClass: $calledByClass");
  }
}

class y extends x {
  y() : super();
}

class z extends x {
  z() : super();
}

输出:

calledByClass: x calledByClass: y calledByClass: z

难以确定超类。

例如

for example new z() will initialize superClass to type x