首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java中的泛型类型擦除

大家好,我是雄雄,今天给大家分享的是:java的泛型是类型擦除的。

写在前面

那么何为类型擦除?类型擦除就是在编译期明确去掉所编程序的类型系统。啥?还不明白?以java泛型为例,java的泛型在编译期有效,在运行期被删除,下面我们来具体的看看。

先举例一段代码:

以上这段代码很简单,我们写了4个方法,其中method的两个方法的参数类型不一样,listmethod方法的参数类型也不一样,理论上来说,method的两个方法和listmethod的两个方法都可以构成方法重载,但是,这样写对吗?

这样写编译无法通过。报错的地方就在listmethod方法上,报错信息为:

这个错误的意思就是,listmethod

这就是java泛型擦除类型引起的问题,在编译后所有的泛型都会做出相应的转化,可以总结为如下转换规则:

List、List、List擦除后的类型为List。

List擦除后的类型为List[]。

List

List擦除后的类型为List< Serializable >

看完以上规则之后你是否明白了上面代码为什么会报编译错误呢?

辣椒酱了哈,年底冲销量了,满80减15了,单件商品下单立减1.88元,时间有限!

本文参考自:《编写高质量代码 改善java程序的151个建议》

作者:秦小波

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210112A00VSM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券