Java泛型参数和继承

Ski*_*kip 1 java generics polymorphism inheritance

我们知道ViewGroup扩展了View.
此外,我们有一个通用的参数化class A<T extends View>

问题:
为什么方法不C.add()接受new A<ViewGroup>()参数?
由于多态性,它不应该工作吗?

类图

解决方案: Singning add with ? extends Viewlet添加accept new A<ViewGroup>()作为参数.

解

tot*_*to2 7

您将add方法签名为:

static void add(A<View>)
Run Code Online (Sandbox Code Playgroud)

但你可能意味着:

static void add(A<? extends View> a)
Run Code Online (Sandbox Code Playgroud)