Почему следующий код имеет ошибку компиляции:
Foo.java:
public abstract class Foo<T> {
public abstract T getInner();
}
MyFoo.java:
public class MyFoo extends Foo<MyFooInner> {
public static class MyFooInner {
}
public MyFooInner getInner() {
return new MyFooInner();
}
}
Компиляция результатов второго класса:
MyFoo.java:1: cannot find symbol
symbol: class MyFooInner
public class MyFoo extends Foo<MyFooInner> {
^
1 error
Есть ли способ обойти эту проблему, помимо помещения внутреннего класса в свой собственный файл?