我读过一些主题,其中涵盖了有关泛型的某些问题,例如它们的与原始类型的关系 https://stackoverflow.com/questions/9164886/java-unbound-wildcard-generics。但我想对其中的某一行进行额外的解释关于未绑定泛型的 Java SE 教程 http://docs.oracle.com/javase/tutorial/java/generics/unboundedWildcards.html.
按照一句话来说:
printList 的目标是打印任何类型的列表,但它未能实现该目标 - 它只打印 Object 实例的列表;它无法打印 List、List、List 等,因为它们不是 List
如果我很好地理解这句话;和...之间的不同List<?> and List<Object>,我们可以使用类型参数List<String> or List<Integer>通过实施前者。而如果我们实现后者,我们只能使用类型参数List<Object>. As if List<?>是一个上限Object namely List<? extends Object>.