我对“擦除”的理解是什么?正确?

时间:2015-06-05 03:07:48

标签: java generics type-erasure

经过一些研究后,我发现泛型是编译时类型检查功能。它们用于确保不使用不正确的类型,之后还会删除参数化类型信息,以避免在运行时产生不必要的开销。在编译时删除参数化类型信息的过程称为类型擦除。

我还想澄清泛型如何确实确保不使用不兼容的类型。这是通过在编译时插入必要的类型转换来完成的,这会在满足无效类型时导致编译器错误吗?但是,用于运行时检查的类型转换是不是真的?如果是这样,编译器如何在编译时阻止无效类型?

1 个答案:

答案 0 :(得分:0)

好的,我应该意识到在编译时自动发生以防止不兼容类型的类型转换实际上是隐式和内部的。所以它与我在后一部分提到的类型转换不同,我的问题是运行时检查功能。所以没有冲突。