我有这段代码:
public void DoDraw(Graphics g, Main_Data M_D, int x, int y){
if(x<0 || y<0 || x>50 || y>60){
return;
}
else
if(M_D.getPix()[x][y].p_c.isEmpty()){
g.setColor(Color.red);
g.drawLine(x, y, x, y);
}
DoDraw(g ,M_D, x+1, y);
DoDraw(g ,M_D, x, y+1);
DoDraw(g ,M_D, x-1, y);
DoDraw(g ,M_D, x, y-1);
return;
}
这是我的问题:线程“AWT-EventQueue-0”中的异常java.lang.StackOverflowError
哪里有错误?
答案 0 :(得分:0)
错误在于你有&#34;无限&#34;递归。 DoDraw
以一种永远不会到达递归终止的基本情况的方式调用自身。它将继续在相同的参数之间来回切换,直到Java耗尽堆栈空间并且必须终止。