我有基类Triangle
和3个派生类Perimetert
,Areat
和heightt
,它们的命名方法为main
,{{1 }}和main1
。
我问用户在基类中要执行什么操作。如果用户输入1,则应调用继承的类main2
,然后输入2,然后调用main3
,依此类推。
Perimetert
有人可以更正此代码吗?
答案 0 :(得分:0)
这样的代码有问题:
this.treeFlattener = new MatTreeFlattener(
this.transformer, this._getLevel, this._isExpandable, this._getChildren
);
this.treeControl = new FlatTreeControl<SkillFlatNode>(
this._getLevel, this._isExpandable
);
this.dataSource = new MatTreeFlatDataSource(
this.treeControl, this.treeFlattener
);
skillService.dataChange.subscribe(data => {
this.dataSource.data = data;
});
是它创建了无限循环。
public void main1()
{
this.main1();
}
第1行被调用(通过外部方法),它触发了第2行,该行调用了第1行,这触发了第2行,该行调用了第1行,...
因此,是的,这势必会导致问题。如果您想使用递归方法(方法自称),请确保它们总是有可能结束
public void main1() // line 1
{
this.main1(); // line 2
}