The class Task does not have a default constructor
上的Webstorm错误GreatTask
,我希望Task
是`Task的默认构造函数。
我期待创建一个contract
的{{1}},以便在Task
后,对于列表中的每个成员Task.run()
chain
执行因为它是Task.chain[i]
的成员,否则我期待Task
。
我想知道我应该首先纠正什么,Webstorm的代码或配置。
uncaught error
答案 0 :(得分:6)
“默认构造函数”(在技术上)是您自己不添加任何构造函数时添加的构造函数。它将是YourClass(): super();
。
术语“默认构造函数”也常用于任何无名零参数生成构造函数。这就是这里的错误所说的。
因为GreatTask(this.chain);
与GreatTask(this.chain): super();
相同而且超类Task
没有super()
引用的无名零参数生成构造函数,所以您有错误。
Günther的答案通过使GreatTask
构造函数调用现有的Task(List list)
构造函数而不是不存在的Task()
构造函数来解决问题。
答案 1 :(得分:1)
我假设您不想在子类中添加(覆盖)List chain;
字段,因为超类已经包含它。如果要初始化超类的字段,则不能在构造函数参数列表中使用带有this.chain
的短格式。
我认为这是你想要的:
class GreatTask extends Task {
GreatTask(List chain) : super(chain);
String hi() {
return 'hi';
}
}