在Java5中引入了泛型,泛型主要通过使用类型参数来进行泛型程序设计。
类型擦除是Java泛型的一种实现机制。无论何时定义一个泛型类型,都会自动提供一个相应的原始类型,这个原始类型的名字是就是去掉类型参数后的泛型类型名。
例如:Person<T>
的原始类型的类名就是Person
,原始类型类体中的类型变量会被擦除并替换,如果类型变量有一个或多个限定类型,那就用第一个限定来替换类型变量,如果没有限定类型,那就用Object替换;而且编译器会在必要的时候做强制类型转换。这就是类型擦除。
在Java5中引入了泛型,泛型主要通过使用类型参数来进行泛型程序设计。
类型擦除是Java泛型的一种实现机制。无论何时定义一个泛型类型,都会自动提供一个相应的原始类型,这个原始类型的名字是就是去掉类型参数后的泛型类型名。
例如:Person<T>
的原始类型的类名就是Person
,原始类型类体中的类型变量会被擦除并替换,如果类型变量有一个或多个限定类型,那就用第一个限定来替换类型变量,如果没有限定类型,那就用Object替换;而且编译器会在必要的时候做强制类型转换。这就是类型擦除。