<? extebds E>表示通配符存在上限,E就是这个通配符的上限(upper bound),E所有E的子类都可以被接收
Collection 集合中的boolean addAll(Collection<? extends E> c)方法就用的是此方法,要求指定Collection中的元素必须都为E所有E的子类,
这种用法主要与多态相关,
<? super E>表示通配符有下限,E就是这个通配符的下限(upper bound),E所有E的父类都可以被接收,直至Object。
而工具类Collections中的public static <T> boolean addAll(Collection<? super T> c,T... elements)方法就用的是此方法,<? super E>还有往往在比较器中用的比较
多,因为比较的话,比较的数据往往都是比较父类中的数据。 |