java - 为什么在为字符串参数列表传递整数列表时没有出现编译错误?
问题描述
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);
应该会抛出编译错误。它不是。
解决方案
推荐阅读
- css - CSS - 如何在 IE 中修复网格
- javascript - 如何使列类型系列次要 yAxis 值动态而不总是以 0 开头?
- amazon-web-services - ECS I/O 耗时过长
- c# - MetroPanel.Paint 不绘画
- python-3.x - 为什么 AWS SAM 给我随机的 DynamoDB 表名
- jquery - 需要使用json对象中的key获取具体值
- reactjs - 如何实现 React Bootstrap 单选按钮
- java - 在 mapforge 上找不到 Android Studio SDK 位置错误
- c# - 如何创建动态命名的实例 DynamicObject
- logging - 自定义事件日志未显示