【问题标题】:No-argument constructor calling 2-argument constructor无参数构造函数调用 2 参数构造函数
【发布时间】:2011-12-15 19:14:27
【问题描述】:

我正在尝试调用以使 2-arg 构造函数成为默认构造函数。 我的意思是;当调用无参数构造函数时,它调用 具有默认值的 2-arg 构造函数。

public class Foo
{
  int foo1;
  int foo2;

  public Foo()
  {
    Foo(0, 0); //error          //I also tried this.Foo(0,0);
  }
  public Foo(int one, int two)
  {
    this.foo1 = one;
    this.foo2 = two;
  }
}

如何调用第二个构造函数?

【问题讨论】:

  • 几乎是一个很好的问题(如果它包含特定问题“我如何调用第二个构造函数?”;)但它缺少您描述的部分(我的意思是复制/粘贴)尝试以任何方式发生的错误输出。

标签: java compiler-errors


【解决方案1】:

随便写

public Foo()
{
    this(0, 0);
}

请注意,它必须是构造函数中的第一件事。

(这是在§8.8.7.1 "Explicit Constructor Invocations" of The Java Language Specification, Java SE 8 Edition中指定的,它还指定了如何调用特定的超类构造函数。)

【讨论】:

    猜你喜欢
    • 2011-10-08
    • 2015-02-03
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 2013-12-24
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多