无法转换一般

时间:2019-01-16 15:47:47

标签: java generics

我理解为什么我不能将一个与A对应的类转换为与B对应的类(如果B扩展了A)。说明here。但是我不知道为什么这段代码行不通。

public class A {

    public static void main(String[] args) {
        D<? extends B> d = new D<>();
        d.foo(new B()); // compilation error
        d.foo(new C()); // compilation error
    }
}

class B {

}

class C extends B {

}

class D<T> {
  void foo(T t) {

  }
}

我想参考解释此原理的官方文档。

0 个答案:

没有答案