子类的为什么下面的代码有编译错误:找不到类型参数,如果它是一个内部类在Java中
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
除了将内部类放入其自己的文件中,是否有解决此问题的方法?
这是一个有趣的问题......我不确定该语言是否允许,因为Java泛型是通过类型擦除实现的。我希望你必须让MyFooInner成为顶级课程。 –