我有以下课程:
class Foo {
public void sayHello(){
System.out.println("Hello");
}
}
我希望另一个类持有对扩展Foo的类的引用(但不能是Foo)。像这样的东西(错误的语法):
class Bar {
private <E extends Foo> E mFoo;
}
这可能吗?如果没有像这样在类名中声明它,我怎么能这样做呢?
class Bar <E extends Foo> {
private E mFoo;
}
答案 0 :(得分:3)
如果主要观点是E不能是Foo的实例,那么你可以让Foo成为一个可以解决它的抽象类。如果Foo不是抽象的你仍然可以做
public abstract class AbstractFoo extends Foo {
}
然后将E声明为AbstractFoo类型。