关于泛型的官方Java教程介绍了类型擦除以及将其添加到编译器的原因:
当实例化泛型类型时,编译器会通过一种称为类型擦除的技术来转换这些类型,在该过程中,编译器将删除与类或方法中的类型参数和类型参数有关的所有信息。通过类型擦除,使用泛型的Java应用程序可以维护与泛型之前创建的Java库和应用程序的二进制兼容性。
这很可能是一种务实的方法,或者也许是最不痛苦的方法。但是,既然泛型已在整个行业得到广泛支持,那么为了使我们不需要类型擦除,该怎么办?不需要破坏向后兼容性是否可行,或者如果可行,是否可行?
上面引用中的最后一个语句是否已成为自我参照?也就是说:“类型擦除使使用泛型的Java应用程序能够与Java库和使用执行类型擦除的Java版本创建的应用程序保持二进制兼容性。”
1
Sun 1.4已停产。IBM仍在其平台上支持1.4。
@ThorbjørnRavnAndersen:至少对于我父亲地下室的平台,没有 1.5。
—
约尔格W¯¯米塔格
@ThorbjørnRavnAndersen不仅如此,而且人们还可以购买对JVM早期版本的扩展支持。最后我听说它虽然很贵。
—
maple_shaft
我们这里没有人拥有水晶球,因此不负责任。如果您将问题从“将永远存在...”改写为“在Java的未来版本中执行类型
—
清除的