Java中如何在整数列表中添加列表元素
我对数组列表的这种行为感到困惑。 有人能解释一下吗Java中如何在整数列表中添加列表元素,java,Java,我对数组列表的这种行为感到困惑。 有人能解释一下吗 List list = new ArrayList(); list.add(1); list.add("test"); List<Integer> integerList = new ArrayList<>(); integerList.add(123); integerList.add(456); integerList.addAll(list); System.out.println(inte
List list = new ArrayList();
list.add(1);
list.add("test");
List<Integer> integerList = new ArrayList<>();
integerList.add(123);
integerList.add(456);
integerList.addAll(list);
System.out.println(integerList);
List List=new ArrayList();
增加第(1)款;
列表。添加(“测试”);
List integerList=new ArrayList();
整数列表。添加(123);
整数列表。添加(456);
integerList.addAll(列表);
System.out.println(整数列表);
如何在Integer arrayList中添加字符串
有人能分享一些资源来理解这些事情吗?这里讨论了原因: 泛型由编译器检查,但在运行时之后不检查 正如@user提到的,您的编译器/IDE很可能会显示警告,例如 列表是原始类型。对泛型类型列表的引用应参数化
它之所以能够工作,是因为Java在运行时不检查列表,而且
list
是用原始类型声明的,这基本上可以让您绕过编译时对泛型相关内容的检查。不过,你应该得到一个警告。谢谢@user的评论。但我没有看到任何警告。我对此感到非常困惑。你能解释一下这是更多的细节吗?我在你代码的这一行得到一个警告:integerList.addAll(list)代码>你是说你没有收到该行的警告吗?@SauravDudeja这里,详细信息:编译器为什么警告integerList.addAll(list)代码>,不是错误?因为第一个ArrayList
是用原始类型声明的。看见如果第一行输入的是List=new ArrayList()代码>或列表=新的ArrayList()
则当您尝试添加其他类型时,编译器将安全地指示错误。