我应该返回List还是ArrayList

Oh *_*oon 8 java interface

我发现自己同意返回一个接口而不是一个具体的类.

原因很简单,我想要松耦合.

但是会有其他影响或权衡吗?

dwu*_*urf 17

最好返回适合您界面的最通用类型.

如果有一些原因导致ArrayList本身适用于您要返回的数据,那么您应该使用它.通常List很好,但如果返回的值本身是无序的,您也可以考虑使用Collection:

Java集合层次结构图


mpr*_*hat 5

对于像List或ArrayList这样的类型,不应该有任何compilcation,你应该将List的促销代码返回给接口.

你会发现你的自我限制,如果这是来自像CopyOnWriteArrayList这样的发包,你使用的是addIfAbsent等未在List接口中定义的方法.

所以,如果你返回的ArrayList或者未在合同中(定义这个问题,你可以使用API的任何具体的实现List接口),但你是从具体实现量变到质变到别的(从一些限制ArrayList,以LinkedList使用API),为大家将根据您的更改进行更改,我认为太多了.