• 经 常发现有List<? super T>、Set<? extends T>的声明,是什么意思呢?<? super T>表示包括T在内的任何T的父类,<? extends T>表示包括T在内的任何T的子类,下面我们详细分析一下两种通配符具体的区别。

    extends

    List<? extends Number> foo3的通配符声明,意味着以下的赋值是合法的:

    01 // Number "extends" Number (in this context)
    02  
    03 List<? extends Number> foo3 = new ArrayList<? extends Number>();
    04  
    05 // Integer extends Number
    06  
    07