Java每日一点:泛型

1. Java集合有一个缺点,把一个对象丢进一个集合后,集合会“忘记”这个对象的数据类型,取出该对象时,其编译类型变为Object类型(运行时类型不变),【原因】集合的设计者不知道我们会用集合存储什么类型的对象

注意:由于把对象丢进集合后,对象的状态信息会丢失(只知道是个Object类型),因此取出时要进行强制类型转换

2. Java5后,引入参数化类型,即泛型,允许创建集合时指定存储的数据类型,如List<String>

3. 泛型擦除
把一个具有泛型信息的对象赋值给另一个没有泛型信息的变量时,所有在尖括号内的类型信息会被丢掉,如List<String>变为List,元素类型变为Object

4. List<?>, List<? super T>, List<? extends T>三者区别
(?是一个类型通配符)
List<?>表示存储的可以是任意类型的元素
List<? super T>用于设定类型通配符的下限,其元素需为T的父类型
List<? extends T>用于设定类型通配符的上限,其元素需为T的子类型

2022-02-26
在牛客打卡45天,今天也很努力鸭!
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 20:15
还能挽救吗?找同学帮忙看了一下 字节怎么能如此对我
牛客26396789...:你这是严重红线,被发现你自己永远进不去,你那个同学直接走人,你还敢宣扬
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务