如果只能插入空值,List <?>的目的是什么?

kit*_*ttu 6 java generics unbounded-wildcard

根据链接中提供的信息,它说:

重要的是要注意List<Object>并且List<?>不一样.您可以将Object或Object的任何子类型插入到List<Object>.但是你只能在一个插入中插入null List<?>.

List<?>null插入时使用有什么用?

例如,

methodOne(ArrayList<?> l):我们可以将此方法用于ArrayList任何类型,但在方法中我们不能向List添加任何东西,除了null.

l.add(null);//(valid)
l.add("A");//(invalid)
Run Code Online (Sandbox Code Playgroud)

Mar*_*oun 11

当列表(或集合)是未知类型时,您使用无界通配符.

就像教程所说的那样,当你想获得某些列表的信息时会使用它,比如打印它的内容,但是你不知道它可能包含的类型:

public static void printList(List<?> list) {
    for (Object elem: list)
        System.out.print(elem + " ");
    System.out.println();
}
Run Code Online (Sandbox Code Playgroud)

当您想要将值插入列表时,不应该使用它,因为唯一允许的值是null,因为您不知道它包含的值.


jam*_*amp 5

您可以从列表中获取元素。

List<?> 通常用作方法返回的未知类型对象列表的类型,您可以从中读取元素,而不是添加它们。