public class Clown {
    boolean standing = false;

    public Clown(boolean standing) {
        Clown clown = new Clown(standing);
    }

我想用传入的布尔值创建一个新的Clown对象,但是每次运行此命令时,都会出现堆栈溢出错误。我怎样才能解决这个问题?

最佳答案

之所以获得StackOverflow Exception,是因为从自身调用构造函数时您正在执行“递归”调用。

做:

public class Clown {

  boolean standing;

  public Clown(boolean standing) {
      this.standing  = standing;
  }

然后从某个类的某个方法创建Object:
Clown clown = new Clown(standing);

10-02 07:11