社区
C#
帖子详情
什么情况下 使用泛型 为什么使用?
cxr5201314
2008-06-16 09:20:44
网上说的太具体 反而复杂难以理解,,,请高手帮忙下。
...全文
610
12
打赏
收藏
什么情况下 使用泛型 为什么使用?
网上说的太具体 反而复杂难以理解,,,请高手帮忙下。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huanbiho
2009-06-21
打赏
举报
回复
提前定义容器(set,list,map)里的元素的类型;
在1.4的时候:
list.set(index,element)你放进list里的如果是String类型,那么
list.get(index);得到的是依然是Object类型,必须通过强制类型转换
(String)list.get(index)才能得到String类型,这太不合理了
到了1.5的时候:
如果你定义List<String> list = new ArrayList<String>();
那么在list.set(index,element)你想放进非<String>类型的元素,在编译的时候就会报错;
但是换来的好处是list.get(index)不用强制类型转换也能得到本来的元素类型的值。
535cheng110
2008-06-17
打赏
举报
回复
[Quote=引用 10 楼 mike1lainet 的回复:]
顶 2楼 避免装箱拆箱操作,提高性能.
[/Quote]
mike1lainet
2008-06-17
打赏
举报
回复
顶 2楼 避免装箱拆箱操作,提高性能.
sjm2003
2008-06-17
打赏
举报
回复
类型不确定的时候,再用。
sxmonsy
2008-06-17
打赏
举报
回复
顶下二楼
stning
2008-06-17
打赏
举报
回复
提高得最多的,还是性能上。这个是我的理解
stning
2008-06-17
打赏
举报
回复
2楼解释得好
sh1618
2008-06-17
打赏
举报
回复
[Quote=引用 2 楼 jain2150 的回复:]
我先以我的理解来回答你,然后陪你一起等更正确全面的答案.
要理解泛型,就必须了解它的前身--集合类(如:ArrayList,Hashtable,SortedList等集合).集合类是可以代替数组以便灵活管理对象组.注意这里的用词,集合类是个数组(样的东西),集合类用来存储对象,什么是对象,Object.
集合类的好处是包容性强,万物皆对象,所以他能存任何东西.然而有利就有弊,在产生便利性的同时,它也带来了处理性能损失和错误风险提高的坏处.假如对某…
[/Quote]
cxr5201314
2008-06-17
打赏
举报
回复
谢谢。
Zine_Alone
2008-06-17
打赏
举报
回复
楼上的兄弟说的不错 ^_^
另外还有约束作用,比如一个泛型类,可以限定该类型必须继承或者实现某一接口.
jain2150
2008-06-17
打赏
举报
回复
我先以我的理解来回答你,然后陪你一起等更正确全面的答案.
要理解泛型,就必须了解它的前身--集合类(如:ArrayList,Hashtable,SortedList等集合).集合类是可以代替数组以便灵活管理对象组.注意这里的用词,集合类是个数组(样的东西),集合类用来存储对象,什么是对象,Object.
集合类的好处是包容性强,万物皆对象,所以他能存任何东西.然而有利就有弊,在产生便利性的同时,它也带来了处理性能损失和错误风险提高的坏处.假如对某一集合,我们存储的都是int类型的数字,由于集合类存储的是对象,所以存入时会进行装箱,将int装为object,在提取时,又会再拆箱,装箱拆箱动作不可避免带来的额外的性能开支.此外,由于集合不加分辨,可以存储任何对象,那么如果我们把int,string或其他对象混装在同一集合中,在拆箱时,也许会由于拆箱不当带来错误,例如,我们想把一个字符串"AAAAA"拆为一个int数值,自然是不被允许的.
为避免这些弊端,在Net2.0中引入了泛型.泛型其实可以理解为一个强类型的集合类.在ADO.net中,也有类似的改进,那就是强类型Dataset的引入.毋庸置疑,泛型还是个集合,不过它是个确定了存储对象类型的集合,这样,就绕过了装箱拆箱动作,也不会产生拆箱错误.可以这样认为,集合类是泛型的基类部分,泛型新引入的部分是对集合基类的多态扩展.
cxr5201314
2008-06-17
打赏
举报
回复
自己UP 下
深讲什么是Java
泛型
?为什么要
使用
泛型
?
泛型
的知识点~
泛型
,一个孤独的守门者。 大家可能会有疑问,我为什么叫做
泛型
是一个守门者。这其实是我个人的看法而已,我的意思是说
泛型
没有其看起来那么深不可测,它并不神秘与神奇。
泛型
是 Java 中一个很小巧的概念,但同时也是一个很容易让人迷惑的知识点,它让人迷惑的地方在于它的许多表现有点违反直觉。 文章开始的地方,先给大家奉上一道经典的测试题。 List<String> l1 = new ArrayList<String>(); List<Integer> l2 = new ArrayL
什么是
泛型
?为什么要
使用
泛型
?
泛型
,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢? 顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参), 然后在
使用
/调用时传入具体的类型(类型实参)。
泛型
的本质是为了参数化类型(在不创建新的类型的
情况
下,通过
泛型
指定的不同类型来控制形参具体限制的类型)。也就是说在
泛型
使用
过程中, 操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛.
Java
泛型
详解:为什么
使用
泛型
?如何
使用
泛型
?
大家好!,今天我将为大家介绍一个非常有趣的话题——
泛型
。作为Java语言中的一项重要特性,
泛型
可以让我们编写更加通用和灵活的代码。无论您是刚入门Java编程,还是已经有一定经验的开发者,了解
泛型
都对您的编程能力有所帮助。本文将深入探讨
泛型
的实现原理和本质,帮助您更好地理解并应用
泛型
。现在就让我们一起来探索吧!
面试题-什么是java
泛型
?为什么要
使用
泛型
?用Object不行吗?
什么是java
泛型
?为什么要
使用
泛型
泛型
,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢? 顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在
使用
/调用时传入具体的类型(类型实参)。
泛型
的本质是为了参数化类型(在不创建新的类型的
情况
下,通过
泛型
指定的不同类型来控制形参具体限制的类型)。也就是说在
泛型
使用
过程中, 操作的数据类型被指定为一个参数,这种参数类型可以用在类、
什么是Java
泛型
?什么是类型擦除?
泛型
常用的通配符有哪些?
什么是Java
泛型
?什么是类型擦除?
泛型
常用的通配符有哪些?1 Java
泛型
1.1
泛型
的
使用
-
泛型
类1.2
泛型
的
使用
-
泛型
方法1.3
泛型
的
使用
-
泛型
接口1.4
泛型
定义和
使用
的注意事项2
泛型
擦除2.1 通过两个例子证明Java类型的类型擦除2.2 类型擦除后保留的原始类型2.3 类型擦除引起的问题及解决方法2.3.1 先检查,再编译以及编译的对象和引用传递问题2.3.2 自动类型转换2.3.3 类型擦除与多态的冲突和解决方法2.3.4
泛型
类型变量不能是基本数据类型2.3.5 编译时集合的insta
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章