(1) List<?> myList = new ArrayList<?>(); (2) ArrayList<?> myList = new ArrayList<?>();
我了解使用(1),可以交换List接口的实现。似乎(1)通常在应用程序中使用,而不需要它(我自己总是使用它)。
我想知道是否有人使用(2)?
另外,这种情况实际需要多久(并且我可以举个例子),实际需要使用(1)而不是(2)(即,其中(2)不足以..除了对接口和最佳实践进行编码等之外)
几乎总是List首选ArrayList而不是首选,因为例如,List可以将其转换为一个LinkedList而不会影响其余代码库。
List
ArrayList
如果使用ArrayList代替List,则很难将ArrayList实现更改为LinkedList一个,因为ArrayList在代码库中使用了需要重新构造的特定方法。
LinkedList
你可以在此处阅读有关List实现的信息。
你可以从开始ArrayList,但是很快发现另一种实现是更合适的选择。