我有以下几点: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