public class A {
void meth1()
{
}
}
public class B extends A{
void meth2()
{
}
}
public class generic_class<T extends A> {
T var1;
public void meth4(generic_class<? extends B> gc)
{
gc.var1.meth2();
}
}
在这里,我已经宣布了generic_class's meth4个通配符<? extends B>.据我所知,在运行时不存在泛型,所有的‘T’都会被‘A’的上限所取代.所以var1是‘A’类型的,那么它怎么能够访问在B中声明的方法2()呢?作为一个超类,它不应该知道它的派生类的属性和方法.