A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bitwdh 高级黑马   /  2016-6-24 15:58  /  871 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

泛型有什么作用和使用时应注意些什么???

评分

参与人数 1黑马币 +5 收起 理由
hold68 + 5 不错,加油!!!

查看全部评分

11 个回复

倒序浏览
定义:泛型是限制集合存储的数据类型

首先要区分集合和数组的区别: 集合可以存储任意引用数据类型(对象),而且长度不是固定的.
                                         数组虽然说可以存储基本类型和引用类型,然而长度有限,是固定的.

那么问题就出现了,既然说集合可以储存任意数据类型(什么都能存),凭什么系统会判定出集合元素是属于什么类型的呢.举个例子:
你的list集合中元素分别是"1","new Student("张三",23)" 一个数字和一个对象,在调用Student对象方法的时候,new Student可以调用,但是"1"并不是Student的对象,怎么调用方法,这里就会报出错误:ClassCastException(类转换异常)

然而规定了泛型以后,List<Student>,系统就得知,你的这个集合的元素,全部都是Student的对象,就不会发生以上的错误,提高了安全性

第二点也是,省去了从Object类的对象强行转换成Student对象这一步,简化了代码,提高复用性


泛型是集合的标签.. 简单记忆就是,一个罐子上面贴的标签是<盐>,那么你就会知道这个罐子里装的是盐咯
回复 使用道具 举报
泛型的使用注意事项:

1.<> 尖括号内容里一定是引用数据类型 ,如果你想存数字,请将它定义为Integer, 这里会系统自动封装数字为Integer类型

2.前后泛型必须要一致,或者后面干脆不写内容.  ArrayList<String> list=new ArrayList<>();
                                                               ArrayList<String> list=new ArrayList<Integer>();这种就是错误的.相当于说你放盐的罐子,里面又要放糖..弄得别人根本分不清你这罐子里究竟是个啥

希望能帮到你
回复 使用道具 举报
syinys7 发表于 2016-6-24 17:14
定义:泛型是限制集合存储的数据类型

首先要区分集合和数组的区别: 集合可以存储任意引用数据类型(对象),而 ...

谢谢你!!!!!
回复 使用道具 举报
syinys7 发表于 2016-6-24 17:14
定义:泛型是限制集合存储的数据类型

首先要区分集合和数组的区别: 集合可以存储任意引用数据类型(对象),而 ...

谢谢你!!!!!
回复 使用道具 举报

泛型的作用就是提高代码的重用性,你肯定知道函数重载吧,但是重载的话还是太烦,要累赘的写这么多的重复代码,泛型就是就是避免强制类型转换,减少装箱拆箱提高性能,减少错误
回复 使用道具 举报
定义集合中存储的元素的数据类型,就是我理解的泛型的作用;应该注意的是,使用泛型时要注意前后泛型一致,其他的就没了吧。
回复 使用道具 举报
sgnx 中级黑马 2016-6-24 21:56:29
8#
泛型的出现增加了安全性,将运行时期的异常转到编译时期
回复 使用道具 举报
1,减少拆装箱的麻烦
2,将运行期的错误转移到编译期
2,扫黄(还是这个功能最令人振奋)
回复 使用道具 举报
弓长VV 发表于 2016-6-24 22:45
1,减少拆装箱的麻烦
2,将运行期的错误转移到编译期
2,扫黄(还是这个功能最令人振奋) ...

明白了,谢谢你!!!
回复 使用道具 举报
1316582449 发表于 2016-6-24 19:47
泛型的作用就是提高代码的重用性,你肯定知道函数重载吧,但是重载的话还是太烦,要累赘的写这么多的重复 ...

谢谢你的回复和解答!!
回复 使用道具 举报
15820030540 发表于 2016-6-24 21:48
定义集合中存储的元素的数据类型,就是我理解的泛型的作用;应该注意的是,使用泛型时要注意前后泛型一致, ...

明白了,谢谢你的热心解答!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马