【发布时间】:2019-01-03 07:10:26
【问题描述】:
这两行有什么区别:
ArrayList<Integer> iList = new ArrayList<Integer>();
ArrayList iList = new ArrayList<Integer>();
第 1 步:引发编译时错误
public static void main(String args[]){
ArrayList<Integer> iList = new ArrayList<Integer>();
iList.add(10);
iList.add("Test_Element"); // Compiler error, while trying to insert a String in an Integer ArrayList
System.out.print("Value of 2nd element: " + iList.get(1));
}
第 2 步:工作正常
public static void main(String args[]){
ArrayList iList = new ArrayList<Integer>();
iList.add(10);
iList.add("Test_Element"); // works fine, while trying to insert a String in an Integer ArrayList
System.out.print("Value of 2nd element: " + iList.get(1));
}
输出: 第二个元素的值:Test_Element
我预计会出现类似的错误
“ArrayList 中的 add(java.lang.Integer) 无法应用于 (java.lang.String)”,但在第二步中它可以正常工作。
谁能解释一下,为什么我可以在这个列表中插入一个字符串。
【问题讨论】:
-
你不会得到任何错误,因为你的第二种类型是通用的。您可以在第二个 ArrayList 中添加任何类型的对象