博为峰Java技术题 ——JavaSE 泛型Ⅰ
博为峰Java技术题 ——JavaSE 泛型Ⅰ
博为峰教研组 发表于1年前
博为峰Java技术题 ——JavaSE 泛型Ⅰ
  • 发表于 1年前
  • 阅读 6
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

博为峰小博老师:

[泛型初探]

在泛型出现之前,是这么写代码的:

当然这是完全允许的,因为List里面的内容是Object类型的,自然任何对象类型都可以放入、都可以取出,但是这么写会有两个问题:

1、当一个对象放入集合时,集合不会记住此对象的类型,当再次从集合中取出此对象时,该对象的编译类型变成了Object

2、运行时需要人为地强制转换类型到具体目标,实际的程序绝不会这么简单,一个不小心就会出现java.lang.ClassCastException,即类型转换异常

所以,泛型出现之后,上面的代码就改成了大家都熟知的写法:

这就是泛型。泛型是对Java语言类型系统的一种扩展,有点类似于C++的模板,可以把类型参数看作是使用参数化类型时指定的类型的一个占位符。引入泛型,是对Java语言一个较大的功能增强,带来了很多的好处:

1、类型安全。类型错误现在在编译期间就被捕获到了,而不是在运行时当作java.lang.ClassCastException展示出来,将类型检查从运行时挪到编译时有助于开发者更容易找到错误,并提高程序的可靠性

2、消除了代码中许多的强制类型转换,增强了代码的可读性

3、为较大的优化带来了可能

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 49
博文 1224
码字总数 479077
×
博为峰教研组
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: