子類的爲什麼下面的代碼有編譯錯誤:找不到類型參數,如果它是一個內部類在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成爲頂級課程。 –