参见英文答案 >
What is the difference between List and ArrayList? 1个
>
What is a raw type and why shouldn’t we use it? 14个
>
What does it mean to “program to an interface”? 31个
所以我似乎无法弄清楚这两个代码片段之间的区别,或者当一个代码片段优先于另一个代码片段时.
片段#1
public static void main(String[] args) {
List testList = new ArrayList();
testList.add(new Integer(6));
String string = (String) testList.get(0);
}
小片#2
public static void main(String[] args) {
ArrayList testList = new ArrayList();
testList.add(new Integer(6));
String string = (String) testList.get(0);
}
我的解释是,在代码片段1中,名为testList的List被分配给ArrayList对象.在代码段2中,名为testList的ArrayList被分配给ArrayList对象.然而,这对我来说没有意义.
附带问题:两者中的一个是首选标准吗?
最佳答案 第一个片段使用接口List类型,第二个片段使用对象类型ArrayList.
除非您确实需要来自ArrayList的任何方法,否则您应该使用接口类型来防止对类型的混淆.