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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1158147908 中级黑马   /  2015-12-23 00:41  /  825 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

利用泛型可以提高安全性,将运行期的错误提转化到编译期,同时省去强转的麻烦,这到底是啥意思,不明白呀?

5 个回复

倒序浏览
通俗点就是规定了操作对象的类型,如果类型错误就直接编译不通过
回复 使用道具 举报
举例:我们向ArrayList集合中,添加Person对象如果不使用泛型,因为ArrayList集合中add(Object obj) 是可以添加任意对象,默认是Object对象,所以可以把Person添加进去,当对集合进行遍历时候,拿到的每一个Person对象,也是Object类型,所以,要想使用Person的方法,编译会报错。(多态:编译看左边,运行看右边)
但是使用泛型之后,就可以将存入的对象,限定为某一类型,比如现在的Person。这样遍历之后,得到的就是一个Person对象,不用对它进行强转就可以使用它的特有功能了。
所以,总结起来泛型的好处就是:
避免了数据类型的强制转换
解决了黄色警告线问题
把运行时期的问题提前到了编译期间
回复 使用道具 举报
Mr.zhao 发表于 2015-12-23 01:02
通俗点就是规定了操作对象的类型,如果类型错误就直接编译不通过

哦,谢谢!今天上课讲了,已经明白了
回复 使用道具 举报
Hi.。 发表于 2015-12-23 09:49
举例:我们向ArrayList集合中,添加Person对象如果不使用泛型,因为ArrayList集合中add(Object obj) 是可以 ...

好详细,受教了
回复 使用道具 举报
一、泛型好处
1、提高安全性(将运行期的错误转换到编译期)
2、省去强转的麻烦
二、泛型基本使用
1、 <>中放的必须是引用数据类型
三、泛型使用注意事项
1、前后的泛型必须一致,或者后面的泛型可以省略不写(1.7的新特性菱形泛型)  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马