Java中的无界通配符与Object类型参数

时间:2016-07-21 14:22:11

标签: java generics

java documentation解释了使用Object作为类型参数与使用和无界通配符(?)之间的区别,使用以下代码示例:

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

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

它说第一个例子无法实现打印任何类型列表的目标。它只能打印对象列表;它无法打印List<Integer>List<String>List<Double>等,因为它们不是List<Object>的子类型。

但是Integer,String和Double肯定是Object的子类型?是不是所有东西都从Java中的Object继承?

0 个答案:

没有答案