泛型中? super T和? extends T的理解

? super T 代表T本身和T的父类

? extends T 代表T本身和T的子类

这个玩意有什么用呢,起到限定作用,比如你要实现一个list集合拷贝的方法,即Collect.copy(listD,listS);

如果不加任何限制,那么任何类型的两个List都能进行拷贝肯定是不正确的,因为里面的字段千差万别。

假设ListD代表目的集合   listS代表源集合 请问哪个代表? super T  哪个代表? extends T

按照正常思维思考一下  源集合肯定是来者不拒  越多越好 能拷贝的字段越多越好 因此对源集合不做限制

不做限制的话肯定选 ? extends T 啊 因为子类既拥有父类 又能自己额外添加东西。

目的集合为了起到这个拷贝方法的限制性,需要用? super T 这样拷贝的时候才能真正拷贝到想要的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章