经常发现有List<? super T>、Set<? extends T>的声明,是什么意思呢?<? super T>表示包括T在内的任何T的父类,<? extends T>表示包括T在内的任何T的子类,下面我们详细分析一下两种通配符具体的区别。 extends List<? extends Number> foo3的通配符声明,意味着以下的赋值是合法的: // Number "extends" Number (in this context) List<? extends Number> foo3 = new ArrayList&l