该类没有默认的构造函数

mec*_*ous 4 dart

Webstorm错误The class Task does not have a default constructorGreatTask,我希望Task是工作的'默认的构造函数。

我期待创建一个contracta Task,这样,Task.run()列表中的每个成员都将chain Task.chain[i]像a的成员一样被执行Task,否则我期望一个uncaught error

我想知道首先要纠正的是Webstorm的代码或配置。

abstract class Task {
  List chain;

  Task(this.chain);

  void run() {
    this.chain.forEach((el) => this.el());
  }
}


class GreatTask extends Task {
  List chain;

 GreatTask(this.chain);

  String hi() {
    return 'hi';
  }
}
Run Code Online (Sandbox Code Playgroud)

lrn*_*lrn 6

从技术上讲,“默认构造函数”是您自己不添加任何构造函数时所添加的。会的YourClass(): super();

术语“默认构造函数”也常用于任何无名称的零参数生成生成器。这就是这里所说的错误。因为和超类没有GreatTask(this.chain);相同的引用,并且没有超名称零参数生成生成器,所以您会遇到错误。GreatTask(this.chain): super();Tasksuper()

Günther的答案通过使GreatTask构造函数调用现有的Task(List list)构造函数而不是不存在的Task()构造函数来解决该问题。