一句话,回答:java有很多话要说
!此承诺已写入java虚拟机规范。为了与java1.5之前的版本兼容,我们最终选择了这个方案。
尽管兼容解决方案不仅仅是擦除,但这种承诺确实是它没有采用像c#这样的真正通用解决方案的最重要原因。
java中的泛型非常棒。这就是为什么我经常讨厌java的原因之一。
让我们先谈谈泛型的主要功能:
1。加强类型安全。例如,如果定义了一个列表
2.提高性能,减少类型转换和装箱次数。
让我们来谈谈java泛型的奇妙之处:
1。java泛型实现的原理称为类型擦除。无论代码中如何定义泛型,它们在编译后都会成为对象,因此在运行时无法实现类型安全。而且,java编译器不够聪明,很容易被欺骗。例如,调用第三方接口返回list
2.由于类型被删除,类型转换是不可避免的,所以使用泛型和非泛型不会改变性能。