动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

30天自动登录
微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录

什么是类型擦除?

代码小兵696

2021.05.07

知道是泛型里面的知识点,遗忘了

    Java SE

举报

添加回答

回答(1)

代码小兵498

过类型参数合并,将泛型类型实例关联到同一份字节码上。 编译器只为泛型类型生成一份字节码,并将其实例关联到这份字节码上。 泛型是通过类型擦除来实现的,编译器在编译时擦除了所有类型相关的信息,所以在运行时不存在任何类型相关的信息。例如 List在运行时仅用一个List来表示。这样做的目的,是确保能和Java 5之前的版本开发二进制类库进行兼容。你无法在运行时访问到类型参数,因为编译器已经把泛型类型转换成了原始类型。

类型擦除的主要过程如下: 1.将所有的泛型参数用其最左边界(最顶级的父类型)类型替换。 2.移除所有的类型参数。


 

时间:05-07 11:35 查看回复 (0) 回复 0 0 举报

回复