java泛型是如何工作的呢?
下文笔者讲述java泛型的工作原理,如下所示
类型擦除
在了解泛型工作原理前,我们先了解一些泛型涉及的概念 1、类型检查:在生成字节码之前提供类型检查 2、类型擦除:所有类型参数都用他们的限定类型替换,包括类、变量和方法(类型擦除) 3、当类型擦除和多态性发生了冲突时,则在子类中生成桥方法解决 4、当调用泛型方法的返回类型被擦除,则在调用该方法时插入强制类型转换例:
类型擦除
所有类型参数都用他们的限定类型替换: 如T->Object ? extends BaseClass->BaseClass
泛型的工作原理
泛型是通过类型擦除来实现的 编译器在编译时擦除了所有类型相关的信息 所以在运行时不存在任何类型相关的信息 如 list<String>在运行时仅用一个List来表示 这样做的目的,是确保能和Java 5之前的版本开发二进制类库进行兼容 你无法在运行时访问到类型参数 因为编译器已经把泛型类型转换成了原始类型
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。