相关疑难解决方法(0)

List <Object>和List <?>之间有什么区别

以前你把我烧死了,我必须说我多次搜索这个问题,我仍然无法理解List <Object>和List <?>之间的区别

我读过的所有书都说在Java中,每个类都隐含着Object的子类.

但是我在这里看到了以下代码:

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

这段代码是错误的(故意用于教育目的),根据作者的原因是:

[...]只打印一个Object实例列表; 它不能打印List <Integer>,List <String>,List <Double>等,因为它们不是List <Object>的子类型

解决方案是:

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

如您所见,唯一的区别是第一行:

public static void printList(List<Object> list) {
public static void printList(List<?> list) {
Run Code Online (Sandbox Code Playgroud)

这就是我的问题的原因:List <Object>和List <?>之间有什么区别?

毕竟是对象超类的全部与否?

如果有人可以帮我一个简单的解释(我是Java的新手),我将不胜感激.

先感谢您.

java

29
推荐指数
3
解决办法
1万
查看次数

标签 统计

java ×1