Java 列表的目的是什么<&燃气轮机;如果只能插入空值?

Java 列表的目的是什么<&燃气轮机;如果只能插入空值?,java,generics,unbounded-wildcard,Java,Generics,Unbounded Wildcard,根据报告中提供的信息,报告说: 需要注意的是,List和List是不同的。您可以将对象或对象的任何子类型插入列表。但您只能在列表中插入null 当只能插入null时,使用List有什么用 比如说, methodOne(ArrayList l):我们可以对任何类型的ArrayList使用此方法,但在该方法中,除了null之外,我们不能向列表中添加任何内容 l.add(null);//(valid) l.add("A");//(invalid) 您可以从列表中获取元素 List通常用作某个方法返回

根据报告中提供的信息,报告说:

需要注意的是,
List
List
是不同的。您可以将对象或对象的任何子类型插入
列表
。但您只能在
列表中插入null

当只能插入
null
时,使用
List
有什么用

比如说,

methodOne(ArrayList l):
我们可以对任何类型的
ArrayList
使用此方法,但在该方法中,除了
null
之外,我们不能向列表中添加任何内容

l.add(null);//(valid)
l.add("A");//(invalid)

您可以从列表中获取元素


List
通常用作某个方法返回的未知类型对象列表的类型,从中读取元素,而不是添加元素。

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

如本教程所述,当您想要获取有关某个列表的信息(如打印其内容)但不知道该列表可能包含的类型时,可以使用它:

public static void printList(List<?> list) {
    for (Object elem: list)
        System.out.print(elem + " ");
    System.out.println();
}
公共静态无效打印列表(列表){
用于(对象元素:列表)
系统输出打印(elem+“”);
System.out.println();
}
您不应该在希望向列表中插入值时使用它,因为唯一允许的值是
null
,因为您不知道它包含哪些值