使用通配符(?)指定无界通配符类型,例如List <?>。这称为未知类型列表(list of unknown type)。在两种情况下,无界通配符是一种有用的方法:
- 如果您正在编写一个可以使用Object类中提供的功能实现的方法。
- 当代码使用泛型类中不依赖于类型参数的方法时。例如,List.size或List.clear。事实上,Class<?>经常被这样使用,因为 Class中的大多数方法中不依赖于Ť。
考虑以下方法printList:
public static void printList(List<Object> list) {
for (Object elem : list)
System.out.println(elem + " ");
System.out.println();
}
printList 的目标是打印任何类型的列表,但未能实现该目标——它仅打印Object实例的列表;它不能打印List ,List ,List 等,因为它们不是List