首页 > 解决方案 > 为什么在为字符串参数列表传递整数列表时没有出现编译错误?

问题描述

public class Generic<T> {

    public static void main(String[] args) {
        Generic g = new Generic();
        List<Integer> integerList = new ArrayList<>();
        integerList.add(42);
        g.f(integerList);
        System.out.println(integerList);
    }

    void f(List<String> stringList){
        stringList.add("hello");
    }
}

执行此代码将编译并打印[42, hello]

我将我的传递List<Integer> integerList给 aList<String> stringList并且编译器对此很好。为什么?编译器不应该检查这类事情吗?Line withg.f(integerList);应该会抛出编译错误。它不是。

标签: javaopenjdk-12

解决方案


推荐阅读