我在学习Java泛型。我的理解是,泛型通过类型来参数化集合。在Oracle的教程中有以下评论:
在泛型代码中,问号(?)称为通配符,表示未知类型。
下一页中有一个带有上限通配符的方法声明示例:
public void process(List<? extends Foo> list)
鉴于此,我想知道为什么这个方法声明是非法的:
public void process(List<E extends Number> list)
而这个是合法的:
public <E extends Number> void process(List<E> list)