分为三类:
class A{
}
class B{
}
class Gen<T, V extends T>{
}
以下程序将无法编译:
class Main{
public static void main(String[] args){
Gen<A, B> g;
}
}
因为它V
必须与它相同T
或它的子类。
现在有这段代码:
class Main{
public static <T, V extends T> void qq(T x, V y){
}
public static void main(String[] args){
qq(new A(), new B());
}
}
我希望它不会以相同的方式编译,因为它B
不继承自A
,但它仍然工作得很好。为什么?