posts - 4,  comments - 0,  views - 75
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
表示类型的上界,也就是说参数化的类型可能是T或者T的子类。例如:下面的写法都是合法的赋值语句: ![](https://img2024.cnblogs.com/blog/3383899/202401/3383899-20240129203144762-685357479.png) (1)在上面的赋值显示中,对读数据进行分析 1)不管给List如何赋值,可以保证List里存放的一定是Number类型或其子类型,因此,可以从list列表里读取Number类型的值。 2)不能从list中读取Integer,因为list里面可能存放的是Float值,同理也不可以从里面读取Float。 (2)对数据进行分析 不能向list中写Number,因为List中有可能存放的是Float; 不能向list中写Integer,因为List中有可能存放的是Float; 不能向list中写Float,因为list中有可能存放的事Integer; 从上面的分析可以发现,只能从List读取T,因为无法确定他实际指向列表的类型,从而无法确定列表里存放的实际的类型。所以,无法向列表里添加元素。 表示下界,也就是说参数化的类型是此类型的超类型(父类型)。 ![](https://img2024.cnblogs.com/blog/3383899/202401/3383899-20240129204558480-865051218.png) 被设计为用来写数据的泛型(只能写入T或T的子类型),不能用来读,分析如下: (1)读数据: 无法保证list里面一定存在的是Float类型或者Number类型,因为有可能存放的是Object类型,唯一能确定的是list里面存放的是Object类型及其子类,但是无法确定具体的子类的类型。正是由于无法确定list里面存放的数据类型,因此无法从list里面读取数据。 (2)写数据: 1)可以向list中写入float类型的数据,同理也可以向list里面添加Float子类类型的数据; 2)不可以向list里面添加Number或Object类型的数据,因为list中可能存放的是Float类型的数据。 ![](https://img2024.cnblogs.com/blog/3383899/202401/3383899-20240129205301163-1194410194.png)
posted on   不二一哥  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示