代码中经常发现有List< super T>、Set的声明,是什么意思呢?
< 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< extends Number>;
// Integer extends Number
List< extends Number> foo3 = new ArrayList<