List<? extends T>和List<? super T>之间有什么区别,并给出使用场景? 两者同为Java泛型的通配符,其中的extends 和 super 两个关键字分别可以解释为 一父多子、一子一父。 区别: List<? extends T>描述了通配符上界,即参数化的类型必须是T类型或它的子类。 List<? super T>描述了通配符下界,即参数化的类型必须是T类型或它的父类。 使用场景: List<? extends T>适合频繁往外读取内容。 List<? super T>适合经常往里插入数据。