次のようなコードがあります。
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();