java泛型中 super T和 extends T的区别
-
经 常发现有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