首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

java反射技术的案例之泛型擦除

正确理解泛型概念的首要前提是理解类型擦除(type erasure)。 Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节代码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会被编译器在编译的时候去掉。这个过程就称为类型擦除。如在代码中定义的List<Object>和List<String>等类型,在编译之后都会变成List。JVM看到的只是List,而由泛型附加的类型信息对JVM来说是不可见的。Java编译器会在编译时尽可能的发现可能出错的地方,但是仍然无法避免在运行时刻出现类型转换异常的情况。类型擦除也是Java的泛型实现方式与C++模板机制实现方式之间的重要区别。

01

刷完牛客网910道Java题目,快速总结上万字,带你扫清Java基础面试障碍

分组一下:    关键字一律用小写字母标识,按其用途划分为如下几组。 (1)用于数据类型。    用于数据类型的关键字有 boolean、byte、char、 double、 float、int、long、new、short、void、instanceof。 (2)用于语句。    用于语句的关键字有break、case、 catch、 continue、 default 、do、 else、 for、 if、return、switch、try、 while、 finally、 throw、this、 super。 (3)用于修饰    用于修饰的关键字有 abstract、final、native、private、 protected、public、static、synchronized、transient、 volatile。 (4)用于方法、类、接口、包和异常。    用于方法、类、接口、包和异常的关键字有 class、 extends、 implements、interface、 package、import、throws。    还有些关键字,如 future、 generic、 operator、 outer、rest、var等都是Java保留的没有意义的关键字。 另外,Java还有3个保留字:goto、const、null。它们不是关键字,而是文字。包含Java定义的值。和关键字一样,它们也不可以作为标识符使用。

02
领券