java - 这两个代码片段之间有区别吗?如果有区别是什么?

标签 java list object arraylist

<分区>

所以我似乎无法弄清楚这两个代码片段之间的区别,或者一个比另一个更受青睐。 片段 #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 的列表被分配给一个 ArrayList 对象。在片段 2 中,一个名为 testList 的 ArrayList 被分配给一个 ArrayList 对象。然而,这对我来说没有意义。

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

最佳答案

第一个片段使用接口(interface)List类型,第二个片段使用对象类型ArrayList

除非您确实需要来自ArrayList 的任何方法,否则您应该使用接口(interface)类型以防止类型混淆。

关于java - 这两个代码片段之间有区别吗?如果有区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33880942/

相关文章:

java - 卡在 java setter 方法上

java - 如何在 Java 中创建关联列表?

python - 根据列表中每个元组的长度克隆列表中的元组

java - 将模拟委托(delegate)给单独的类

java - 由于超时而安全取消线程

java 哈夫曼树优先级

java list<map> 具有重复值

python - 使用 map(function, list) 来转换对象而不返回列表是否合适?

javascript - 如何在javascript中存储类似的对象

objective-c - var->myProperty 和 var.myProperty 之间的区别