CrazyDailyQuestion icon indicating copy to clipboard operation
CrazyDailyQuestion copied to clipboard

声网二面: 从JVM角度说一下泛型擦除?

Open MicroKibaco opened this issue 4 years ago • 1 comments

MicroKibaco avatar Nov 09 '20 21:11 MicroKibaco

我们来看一下非泛型版本的字节码信息

image image

在编译过程中,类型变量的信息是能拿到的。所以,set方法在编译器可以做类型检查,非法类型不能通过编译。对于get方法,由于擦除机制,运行时的实际引用类型为Object类型。为了“还原”返回结果的类型,编译器在get之后添加了类型转换。

我们再看一下泛型版本 image

image

MicroKibaco avatar Nov 09 '20 21:11 MicroKibaco