我试着理解泛型中的通配符,我有一个问题 List<? super Number >可以引用任何对象列表并将任何对象添加到这个列表中,但我不能添加到它对象不扩展数字(字符串)但为什么我可以这样做在此代码中,在运行时没有任何编译错误或异常(指列表包含 String 对象)
编辑:我想了解泛型提供编译时安全,而这在我的示例中没有实现
List <? super Object> objectList = new ArrayList<>();
objectList.add("str1");
List<? super Number> numberList = objectList;
numberList.add(1);
objectList.add("str2");
for (int i = 0; i < objectList.size(); i++) {
System.out.println(objectList.get(i) + "");
}
三国纷争
元芳怎么了
互换的青春
相关分类