【发布时间】:2016-01-25 11:57:46
【问题描述】:
如果我说有区别吗:
List<String> names = new ArrayList<String>();
和
ArrayList<String> names = new ArrayList<>();
【问题讨论】:
-
您是否实施了这两种变体并比较了结果?
标签: java collections
如果我说有区别吗:
List<String> names = new ArrayList<String>();
和
ArrayList<String> names = new ArrayList<>();
【问题讨论】:
标签: java collections
是的,有区别。
(首选)第一种情况让您可以对您的集合进行操作,无论列表概念的具体实现是什么。然后,您可以进一步使用另一种具体类型,同时以下代码保持有效。
在第二种情况下,您可能会想使用具体类型的一些特定方法,然后更改实例化可能会影响更多代码,并使其更难以发展。
【讨论】:
有区别。第一行比第二行更笼统。
例如,如果您有一个将List<String> 作为输入参数的方法,则您只能传递List<String> 而不能传递ArrayList<String>。
如果你不需要使用 ArrayList 特定的方法,你应该使用第一行!
【讨论】: