黑马程序员技术交流社区

标题: 泛型学习疑问 [打印本页]

作者: 1158147908    时间: 2015-12-23 00:41
标题: 泛型学习疑问
利用泛型可以提高安全性,将运行期的错误提转化到编译期,同时省去强转的麻烦,这到底是啥意思,不明白呀?
作者: Mr.zhao    时间: 2015-12-23 01:02
通俗点就是规定了操作对象的类型,如果类型错误就直接编译不通过
作者: Hi.。    时间: 2015-12-23 09:49
举例:我们向ArrayList集合中,添加Person对象如果不使用泛型,因为ArrayList集合中add(Object obj) 是可以添加任意对象,默认是Object对象,所以可以把Person添加进去,当对集合进行遍历时候,拿到的每一个Person对象,也是Object类型,所以,要想使用Person的方法,编译会报错。(多态:编译看左边,运行看右边)
但是使用泛型之后,就可以将存入的对象,限定为某一类型,比如现在的Person。这样遍历之后,得到的就是一个Person对象,不用对它进行强转就可以使用它的特有功能了。
所以,总结起来泛型的好处就是:
避免了数据类型的强制转换
解决了黄色警告线问题
把运行时期的问题提前到了编译期间

作者: 1158147908    时间: 2015-12-24 00:12
Mr.zhao 发表于 2015-12-23 01:02
通俗点就是规定了操作对象的类型,如果类型错误就直接编译不通过

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

好详细,受教了
作者: 1158147908    时间: 2015-12-24 00:20
一、泛型好处
1、提高安全性(将运行期的错误转换到编译期)
2、省去强转的麻烦
二、泛型基本使用
1、 <>中放的必须是引用数据类型
三、泛型使用注意事项
1、前后的泛型必须一致,或者后面的泛型可以省略不写(1.7的新特性菱形泛型)  





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2