我对为什么整数类型Arraylist能够向其中添加字符串感到非常困惑。如下所示,“(”“ 0067”)“被添加到addtolist(List list)方法的列表中,并且由于它是String,所以代码应该抛出错误,但不是。谁能解释为什么此代码成功运行?
//test program
import java.util.ArrayList;
import java.util.List;
public class listing {
public static void main(String[] args) {
List<Integer> lst = new ArrayList<Integer>();
addToList(lst);
System.out.println(lst.get(0));
}
public static void addToList(List list) {
list.add("0067");
}
}
最佳答案
查看方法签名:
public static void addToList(List list)
list
是raw type,启用警告应该警告您类似以下内容:列表是原始类型。对泛型类型List的引用应参数化
为了在编译时进行更强大的类型检查,您需要将其更改为:
public static void addToList(List<Integer> list)