我有以下幾點:Java泛型/抽象/內部類的語法問題
public abstract class Foo<T>{
//contents of Foo //
...
public class Bar<Q> extends Foo<T>{
//contents of Foo.Bar //
...
}
}
後來,在另一個類和java文件,我試圖構建上述內酒吧類的實例,使用外部抽象類作爲超類型。讓事情更復雜的是,新班級有它自己的通用性。以下不起作用:
public class SomeOtherClass<A>{
private Foo<A> x;
public SomeOtherClass(){
x = Foo<A>.Bar<A>();
}
}
但這不起作用;而且我所嘗試過的所有其他組合也不做。那麼我怎麼去實例化x?除去Foo的參數可以完成嗎?我不想刪除Foo的參數,因爲它的抽象方法在它們的簽名中有通用參數。
我沒有意識到有一個地方可以接受最好的答案。對不起! – Jay 2009-11-20 22:49:46
記得儘可能使用靜態嵌套類而不是內部類,並且觀察大部分奇怪的混淆問題就會消失。 – 2009-11-20 23:37:54