StackOverFlow错误 - 来自实例化我的对象类

0 java stack-overflow

我试图在Java中创建一个类,它构建一个类型的对象,Action它包含三个int并将它返回到我在数组中的另一个类history,其中history是一个类型的数组Action.当它被调用时,我立刻得到一个无限循环; 因此堆栈溢出.

错误 - 我打印了1行,它继续...

Exception in thread "main" java.lang.StackOverflowError
    at sudokugame.Action.<init>(Action.java:7)
Run Code Online (Sandbox Code Playgroud)

类:

public class Action {

    Action a;
    public Action(int i, int o, int p){
      a = new Action(i,o,p);
    }

    public void   setAction(int n, int b, int c){

    }

    public Action  getAction(){
        return a;
    }
}
Run Code Online (Sandbox Code Playgroud)

Pau*_*xon 12

构造函数永远递归调用自身.溢出堆栈的可靠方法:)

public Action(int i, int o, int p){
    //why do you do this?
    a = new Action(i,o,p);
}
Run Code Online (Sandbox Code Playgroud)

也许你真正想做的只是在类实例中存储i,o和p?

public class Action {

  int i;
  int o;
  int p;

  public Action(int i, int o, int p){
    this.i = i;
    this.o = o;
    this.p = p;
  }

  ...
}
Run Code Online (Sandbox Code Playgroud)

(编辑:查看更全面的例子的其他答案)