站长网 语言 你,也许没完全搞懂 Java 泛型

你,也许没完全搞懂 Java 泛型

今天我们来谈谈泛型。其实在初学的时候,我就对泛型有点蒙,因为看到有人说 Java 的泛型不是真的泛型,我搞不懂。 还有人说 Java 的泛型在实际运行时候会把类型给擦除了,我想着擦除是什么意思?为什么要擦除? 那把类型给擦除了为什么反射的时候还能得到泛型

今天我们来谈谈泛型。其实在初学的时候,我就对泛型有点蒙,因为看到有人说 Java 的泛型不是真的泛型,我搞不懂。
 
还有人说 Java 的泛型在实际运行时候会把类型给擦除了,我想着擦除是什么意思?为什么要擦除?
 
那把类型给擦除了为什么反射的时候还能得到泛型的类型信息?
 
我们今天就来盘一盘泛型:
 
为什么需要泛型?
为什么都说Java的泛型是伪泛型?
为什么Java泛型的实现是类型擦除?
既然擦除了类型,为什么在运行期仍能反射获得类型?
话不多说,发车!
 
为什么需要泛型
我们都知道在 Java5 之前是没有泛型的,没泛型都能用的好好的,那为什么要加个泛型呢,能给我们带来什么呢?
 
我们先来看下下面这段代码:
 
List list = new ArrayList();
 list.add("yes"); // 加入string
 list.add(233); // 加入int
在没有泛型的时候,加入的集合的数据并不会做任何约束,都会被当作成 Object 类型。
 
可能有人说,这很好呀,多自由!确实,自由是自由了,但是代码的约束能力越低,就越容易出错,使用上也有诸多不便,比如获取的时候需要强转。

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/biancheng/yuyan/2021/1206/33853.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部