Java的JList现在已参数化,参数化最初是在Java 1.7中引入的:type JList does not take parameter type <String>
为什么此类参数化不会破坏与使用Java 1.6编译器编译但在Java 1.7 JRE上运行的应用程序的兼容性?我自然会认为,当一个类所采用的类型参数数量变得非常重要时,兼容性会发生变化,这种兼容性会破坏。
类似的问题(可能有相同的答案):ExecutorService的invokeAll采用了Java 1.5 Collection&lt; Callable&lt; T&gt;&gt;,但现在需要Collection&lt;?扩展Callable&lt; T&gt;&gt;。为什么这不会破坏二进制兼容性?