我尝试这样做:
public class Demo{
public Demo() {
Demo(null)
}
public Demo(Interface myI) {
...
}
}
我希望Demo()
构造函数使用Demo(Interface)
调用null
构造函数,但是eclipse在我调用Demo(null)
的行上抱怨“Demo(null)未定义” 。我需要改变什么?
答案 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);
}