我有一些像這樣的代碼:我的工廠有什麼問題?
public abstract class Foo {
public static Foo getFoo() {
return new FooImpl();
}
abstract void DoFoo();
private class FooImpl extends Foo {
public FooImpl() { }
@Override
void DoFoo() { }
}
}
但是Eclipse是告訴我No enclosing instance of type Foo is accessible.
所以,我怎麼能得到這個工作?
我試圖使它儘可能簡單,看它是否會編譯:
public abstract class Foo {
public static Foo getFoo() {
return new FooImpl();
}
private static class FooImpl extends Foo {
public FooImpl() { }
}
}
我仍然得到同樣的錯誤。我錯過了什麼?
固定!我改了行return new FooImpl();
到return new Foo.FooImpl();
public Foo getFoo()應該是public static Foo getFoo()。 猜測一個錯誤只出現在錯誤中,並且getFoo是靜態的。 – 2009-12-08 02:32:41
是的,你是對的。 – jasonh 2009-12-08 02:38:50