Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这两个代码段之间有区别吗?如果有,区别是什么?_Java_List_Object_Arraylist - Fatal编程技术网

Java 这两个代码段之间有区别吗?如果有,区别是什么?

Java 这两个代码段之间有区别吗?如果有,区别是什么?,java,list,object,arraylist,Java,List,Object,Arraylist,因此,我似乎无法理解这两个代码片段之间的区别,或者何时一个代码片段会比另一个更受欢迎。 片段#1 片段#2 我的解释是,在代码片段1中,一个名为testList的列表被分配给ArrayList对象。在代码段2中,一个名为testList的ArrayList被分配给ArrayList对象。然而,这对我来说毫无意义 附带问题:这两个标准之一是首选标准吗?列表是一个接口数组列表实现列表。因此,在功能上,两个代码段的工作方式相同。第一个代码段使用接口List类型,第二个代码段使用对象类型ArrayLis

因此,我似乎无法理解这两个代码片段之间的区别,或者何时一个代码片段会比另一个更受欢迎。 片段#1

片段#2

我的解释是,在代码片段1中,一个名为testList的列表被分配给ArrayList对象。在代码段2中,一个名为testList的ArrayList被分配给ArrayList对象。然而,这对我来说毫无意义


附带问题:这两个标准之一是首选标准吗?

列表是一个接口<代码>数组列表
实现
列表
。因此,在功能上,两个代码段的工作方式相同。

第一个代码段使用接口
List
类型,第二个代码段使用对象类型
ArrayList


除非您真的需要任何来自
ArrayList
的方法,否则您应该使用接口类型来防止对类型的混淆。

我认为这个问题可能有一些重复。这两个问题都不好,因为您使用的是原始类型而不是泛型,并且您试图将整数作为字符串读取(泛型将保护您避免这个错误)。无论如何,第一个代码片段没有什么好处,因为您是在接口上编程的(我们使用
List
作为类型或
testList
接口,因为我们并不真正关心该列表是如何实现的,这使我们可以灵活地在以后更改该实现,如果我们愿意的话)。有关更多信息,请参见此。除其他事项外,界面还允许您在将来具有更大的灵活性(如果您需要更改正在处理的集合类型)非常感谢您的文章链接,在几分钟的阅读中消除了许多困惑。这篇文章太棒了。@MaxZoomAh,Java开发人员对哪一个是标准实现有偏好吗?
  public static void main(String[] args) {
           List testList = new ArrayList();
           testList.add(new Integer(6));

           String string = (String) testList.get(0);
     }
public static void main(String[] args) {
       ArrayList testList = new ArrayList();
       testList.add(new Integer(6));

       String string = (String) testList.get(0);
   }