社区
Java SE
帖子详情
一个泛型集合的问题
编程指南针
Java领域优质创作者
博客专家认证
2009-07-30 03:16:01
List<Integer> list = new ArrayList<Integer>();
list.add(1);
List aa = list;
aa.add("bb");
System.out.println("value:"+list.get(1));
想问一下为何list里已经确定了只存Integer,通过aa添加的字符串类型bb仍然能够通过list.get(1)读出来
...全文
189
10
打赏
收藏
一个泛型集合的问题
List list = new ArrayList(); list.add(1); List aa = list; aa.add("bb"); System.out.println("value:"+list.get(1)); 想问一下为何list里已经确定了只存Integer,通过aa添加的字符串类型bb仍然能够通过list.get(1)读出来
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bigbug9002
2009-08-12
打赏
举报
回复
这种现象好象是叫类型的擦除。
http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.6
英文不好,你自己看看吧。
编程指南针
2009-08-12
打赏
举报
回复
至今没人给出一个合理的解释啊
ChDw
2009-07-30
打赏
举报
回复
[Quote=引用楼主 whirlwind526 的回复:]
List <Integer> list = new ArrayList <Integer>();
list.add(1);
List aa = list;
aa.add("bb");
System.out.println("value:"+list.get(1));
想问一下为何list里已经确定了只存Integer,通过aa添加的字符串类型bb仍然能够通过list.get(1)读出来
[/Quote]
因为这个确定只是编译器限制,并不是运行时限制。所以在实际运行中是没有影响的
aywrenyue
2009-07-30
打赏
举报
回复
[Quote=引用楼主 whirlwind526 的回复:]
List <Integer> list = new ArrayList <Integer>();
list.add(1);
List aa = list;
aa.add("bb");
System.out.println("value:"+list.get(1));
想问一下为何list里已经确定了只存Integer,通过aa添加的字符串类型bb仍然能够通过list.get(1)读出来
[/Quote]
你能通过list.get(1)读出来吗?
不会抛异常吗?
musecangying007
2009-07-30
打赏
举报
回复
泛型是与具体的List对象绑定的,不是与List类绑定的
closewbq
2009-07-30
打赏
举报
回复
泛型的意思就是约束有泛型的对象。
zhuzhusany
2009-07-30
打赏
举报
回复
List aa = list;
aa没有指定泛型,当然如果list.add("bb");是会错的
knightzhuwei
2009-07-30
打赏
举报
回复
晕 泛型是和具体的List对象绑定的 不是和List类绑定的 你的list是指定了泛型 但是aa并没有指定泛型啊。。
ty_fzpb
2009-07-30
打赏
举报
回复
晕倒! 自己看
hahapigzhu
2009-07-30
打赏
举报
回复
因为你是对aa添加字符串,而aa没有指定是Integer,list才是Integer
C#中的
泛型
集合
如何利用
集合
,和
泛型
来解决看似复杂的
问题
day07Collection
集合
_
泛型
.md
day07Collection
集合
_
泛型
.md
JAVA第八章
泛型
.pptx
了解
泛型
,能够说出
泛型
的作用和优点 掌握
泛型
类,能够独立定义和使用
泛型
类 掌握
泛型
接口,能够独立定义和使用
泛型
接口 掌握
泛型
方法,能够独立定义并使用
泛型
方法 掌握类型通配符,能够正确定义类型通配符的上限和下限 通过之前的学习,读者可以了解到,把
一个
对象存入
集合
后,再次取出该对象时,该对象的编译类型就变成了Object类型(尽管其在运行时类型没有改变)。
集合
设计成这样,提高了它的通用性,但是也带来了一些类型不安全和繁琐的
问题
,例如,
集合
可以同时存储任何类型的对象,通常对取出之后的对象都需要强制类型转换,而且如果不知道实际参数类型的情况,也无法进行强制类型转换。为了解决这些
问题
,从JDK 5版本开始引入了
泛型
,本章将围绕
泛型
的相关内容进行讲解。 01
泛型
基础 02
泛型
类 03
泛型
接口 04
泛型
方法 05类型通配符
Java
集合
--
泛型
集合
泛型
集合
的使用
C#
泛型
集合
与非
泛型
集合
在.NET FCL为我们提供了很多
集合
类型,是编程中非常有力的工具。
泛型
集合
主要在System.Collections.Generic名称空间中,而非
泛型
集合
主要在System.Collections,首先抛出结论:如果在C#2.0版本以上,尽量使用
泛型
集合
类,而不使用非
泛型
集合
类。因为,1.
泛型
编程是从c#2.0开始才被.net支持的。2.
泛型
集合
在性能和类型安全方面优于非
泛型
集合
。 非...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章