刚才开玩笑了。
这个要比较起来说明的,设置你所谓的上限下限是在参数声明的时候,其他情况不行
1 首先确定的泛型在new时只能new确定的泛型,且其可以使用add方法添加此类型和其子类的实例
2 如上面说的,这样类型就被定义的死死的,不利于多态,所以才有了<? extends Xxx>这种形式,表示list可以为泛型Xxx或者Xxx的子类型,但是这样也有弊端,就是你不能再用add方法,换句话说这样的泛型只能用来做参数传递读取里面的值,无法添加。
3 那么我还想add怎么办,于是有了<? super Xxx>的形式,这样在作为参数传递时候可以传递Xxx以及Xxx父类型的list进来,但是add只能是Xxx或者Xxx的子类(这个到哪都一样,没什么可说的),至于具体怎么用看你的需求了,好处坏处是参考着来的,谁也没比谁好到哪去,只能说各有各的方式,基本算回答你的问题了,下面的算额外附赠,望采纳
4 List<?> 任何类型可以传递进来,但不能再add
5 List<Object> 只能是类型<Object>,可以add
6 <?>和<? extends Object>意义相同 |