在Java Generics的情况下,向后兼容性究竟意味着什么?

时间:2014-03-17 15:07:10

标签: java generics

Generic type information is not available at runtime in Java for backwards compatibility reasons.

究竟兼容性原因在这里意味着什么?在某些情况下也可以使用通用类型信息,或者它总是不可用,除了向后兼容性之外还有其他原因吗?

我对此有一些了解,但如果有人愿意回答这个问题,我想最终理解它。我已阅读过几篇文章和一些Oracle文档,但他们没有关注我试图弄清楚的问题。

1 个答案:

答案 0 :(得分:4)

类型信息始终已删除。想象一下,你有一组字符串,你会(现在)使用Set<String> - 但在添加泛型之前,它只是Set。为了确保将泛型添加到Java时的向后兼容性(2004年使用J2SE 5.0),将删除类型信息。因此,Set<String>会编译为Set,以便与添加泛型之前编写的代码兼容。