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天,今天也很努力鸭!
全部评论

相关推荐

一笑倾城a:遇到阳光开朗大女孩了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务