【问题标题】:what is differnce between List<String> list = new ArrayList<String> and ArrayList<String> list = new ArrayList<String>? [duplicate]List<String> list = new ArrayList<String> 和 ArrayList<String> list = new ArrayList<String> 有什么区别? [复制]
【发布时间】:2017-05-08 23:55:42
【问题描述】:

通常声明类型是接口类型,初始化部分有实现类型。 List&lt;String&gt; list = new ArrayList&lt;String&gt;ArrayList&lt;String&gt; list = new ArrayList&lt;String&gt; 有什么区别?除了多态还有什么区别?

【问题讨论】:

  • 提示:我用了不到 10 秒的时间找到了这个答案。下一次,请尝试做之前的研究。

标签: java variables collections


【解决方案1】:

没有重要的区别。但是如果你使用这样的东西

void doSomething(List list)
{}

你可以使用任何扩展 List 类的对象,但如果你使用类似这样的东西 无效doSomething(ArrayList列表) {} 您只能使用 ArrayList 对象及其子类。

【讨论】:

  • 谢谢,如果我使用接口,将来代码编辑是否容易(例如:List list = new ArrayList();
  • 是的,抽象是 OOP 的原则之一!
  • 你能举个例子吗? ;)
  • 现在,您的列表可能是 ArrayList 类的对象,但最近它可能是 LinkedList 类的对象。阅读 Polymorphism 以更好地理解它。
【解决方案2】:

List 是一个接口,ArrayList 是它的实现类。 我们不能创建接口的对象,因为它们是抽象的,但我们可以创建接口的引用,它只不过是 List list 。 使用这个引用我们可以调用 ArrayList 的方法。

【讨论】:

  • 这不能回答问题。它没有回答使用List&lt;..&gt;ArrayList&lt;..&gt; 作为变量类型之间的区别。
猜你喜欢
  • 2014-07-22
  • 1970-01-01
  • 2015-12-07
  • 2013-03-27
  • 1970-01-01
  • 2014-01-09
  • 2014-04-12
  • 1970-01-01
  • 2019-03-15
相关资源
最近更新 更多