如果声明
myList为
ArrayList,则修复其具体类型。每个使用它的人都将取决于此具体类型,并且很容易(甚至无意间)调用特定于的方法
ArrayList。如果过了一段时间,您决定将其更改为例如
linkedList或
CopyOnWriteArrayList,则需要重新编译-
甚至可能更改-客户代码。接口编程消除了这种风险。
请注意,在
Collection和之间
ArrayList,还有另一个抽象层次:
List接口。通常,列表的使用模式与映射,集合或队列的使用模式非常不同。因此,您通常需要尽早确定工作所需的收藏类型,并且不会改变。将变量声明为a
List可使此决定变得清晰,并向其客户提供有关此集合遵守的合同的有用信息。
Collection通常,OTOH除了迭代其元素外,并没有太多用处。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)