为什么要升级List对象?Android/Java语法



我最近阅读了许多Android项目的代码,以获得更多的理解。我看到的一件事是ArrayList实例化的两种方式的不同。

请注意此处显示的这两个示例。为什么有些人使用示例1,你为什么要在示例2上这样做,它们之间的主要区别是什么?

我理解Java中上行和下行的概念,在这种特殊情况下看不到任何优势。如果要创建arrayList,为什么不从一开始就将其存储在arrayList变量中?

我一直使用示例2的方法来创建一个新的ArrayList。我不明白使用示例1 的优点是什么

看起来更多的程序员使用示例1方式

示例1,向父变量中使用上行

  List<String> list = new ArrayList<String>();

示例2

  ArrayList<String> list = new ArrayList<String>();

List是一个接口,因此无法实例化它。您必须用它的具体实现(如ArrayList)进行实例化。

使用List还是ArrayList完全取决于使用它的上下文。。

如果你想要一个ArrayList,你应该通过用ArrayList实例化它


Upcasting通常是为了方法的可重用性而执行的,并且通常是自动执行的。。

考虑这种排序列表的方法

public void sort(ArrayList lst);

只能通过此方法对ArrayList进行排序。因此,如果你想对LinkedList对象进行排序,你必须创建另一个带有LinkedList参数的方法

现在考虑这个方法

public void sort(List lst);

现在,您可以通过传递实现List接口的类的对象来重用此方法。。因此,现在可以使用相同的方法对ArrayListLinkedListStackVector进行排序。。因此,您现在可以重用这个相同的方法来对实现List接口的不同类进行排序

相关内容

  • 没有找到相关文章

最新更新