Webstorm 错误 The class Task does not have a default constructor
在 GreatTask
, 我期待 Task
是`Task的默认构造函数。
我期待创建一个 contract
的 Task
,使得在 Task.run()
上, 对于列表中的每个成员 chain
Task.chain[i]
被执行,因为它是 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';
}
}
最佳答案
如果您自己不添加任何构造函数,则“默认构造函数”(技术上)是添加的构造函数。它将是 YourClass(): super();
.
术语“默认构造函数”也常用于任何无名零参数生成构造函数。这就是这里的错误所说的。
因为 GreatTask(this.chain);
与 GreatTask(this.chain): super();
相同和父类(super class) Task
没有 super()
的无名零参数生成构造函数引用,你有一个错误。
Günther 的回答通过制作 GreatTask
解决了这个问题。构造函数调用现有 Task(List list)
构造函数而不是不存在的 Task()
构造函数。
关于dart - 该类没有默认构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32595288/