默认构造函数调用InterfaceConstructor,返回null

时间:2012-10-31 14:18:23

标签: java

我尝试这样做:

public class Demo{
public Demo() {
    Demo(null)
}
public Demo(Interface myI) {
    ...
}
}

我希望Demo()构造函数使用Demo(Interface)调用null构造函数,但是eclipse在我调用Demo(null)的行上抱怨“Demo(null)未定义” 。我需要改变什么?

2 个答案:

答案 0 :(得分:8)

不应该是Demo(null)而是this(null)

答案 1 :(得分:4)

您正在尝试调用尚未定义的名为Demo方法

e.g。

class A {
   public A() {
      this(1); // calls constructor A(int)
      A(1); // calls method A(int)
   }
   public A(int i) {} // constructor A(int)
   public void A(int i) {} // method A(int)

   public A A(A a) { return a; } // method A(A) which returns A
}

如果你想让一个构造函数调用另一个,你需要使用this()之类的

public Demo() {
    this(null);
}