为什么下面的代码编译失败?这个例子可以简化(到更少的类)来演示等效的错误吗?
产生的错误信息是:
func(capture of ? extends A) in ... 不能应用于 B
private static interface A {}
private static class B implements A {}
private static class C<T> {
private final T t;
private C(T t) {
this.t = t;
}
private void func(T t) {}
}
@Test
public void doTest() {
B b = new B();
C<? extends A> c = new C<B>(b);
c.func(b); // fails here
}