如何将布尔值传递到新对象中?

3
public class Clown {
    boolean standing = false;

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

我希望使用传入的布尔值创建一个新的Clown对象,但每次运行时都会出现堆栈溢出错误。我该如何修复这个问题?


lametaweb的解决方案是正确的。如果你想知道为什么会出现堆栈溢出异常,请考虑每次调用Clown(boolean)时,它又会调用自身。 - CollinD
1个回答

4
你会因为在构造函数中递归调用自身而出现“StackOverflow”异常。
正确做法:
public class Clown {

  boolean standing;

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

然后,在某个类的某个方法中使用以下代码创建Object

Clown clown = new Clown(standing);

创建对象__在构造函数之外__--显然OP错过了这一点;这可能是一个重要的亮点。 - D. Ben Knoble

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接