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的子类型
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天,今天也很努力鸭!
全部评论
相关推荐
专业嗎喽:硕佬,把学校背景放后面几段,学校背景双非还学院,让人看了就不想往下看。
把实习经历和个人奖项放前面,用数字化简述自己实习的成果和掌握的技能,比如负责项目一次通过率90%,曾4次发现项目潜在问题风险为公司减少损失等等 点赞 评论 收藏
分享
美的集团公司福利 819人发布