泛型与泛型擦除
泛型技术在C#和Java之中使用方式看似相同,实际上却有着本质上的分歧。C#里面的泛型无论是在程序源码,编译后期还是运行期CLR中,都是切实存在的,List与List就是两个不同的类型,他们在运行期生成,有自己的虚方法表和类型数据。
Java语言的泛型规则不一样,他只在程序源码中存在,在编译后的字节码文件中就不存在List和List了,他们就是同一个类。
上面这段代码是不能被编译的,因为List和List编译之后都被擦除了。变成了一样的原生类型List.
JAVA虚拟机(九)泛型与泛型擦除
最新推荐文章于 2021-04-29 14:25:49 发布