6
A
回答
5
对于像List或ArrayList类型不应该有任何compilcation和你应该返回列表促进Code to an interface。
你会发现你的自我限制这样做,如果这是来自并发包,如CopyOnWriteArrayList,并且你正在使用的方法如addIfAbsent这是List接口中未定义的方法。
因此,如果您返回的ArrayList或者未在合同(List
接口)定义这个问题,你可以使用API的任何具体实现,但你是从具体实现量变到质变到别的(东西从ArrayList
到LinkedList
限制),因为每个使用你的API的人都必须根据你的改变进行改变,所以我期望的太多了。
4
这意味着你不会为返回的对象调用不是List方法的ArrayList方法。
但是,如果对象是一个ArrayList,你可以做一个强制转换。
2
返回具体类的唯一原因可能是如果调用者需要了解具体的实现,或者可能需要了解具体实现的其他接口。例如,在Android中,您经常需要使用ArrayList,因为框架不知道如何正确序列化通用列表接口。
15
最好是返回适合您界面的最通用的类型。
如果出于某种原因,为什么ArrayList固有地适合您要返回的数据,那么您应该使用它。通常列表是不错,但你也可以考虑使用集合如果返回的值是固有无序:
相关问题
- 1. 我应该将IList还是List返回给MVC中的控制器?
- 2. 我应该返回501/505 HTTP状态还是400/404
- 3. 在CQRS中,我的阅读方应该返回DTO还是ViewModels?
- 4. 定义API时我应该返回CompletableFuture还是Future?
- 5. 我应该使用shared_ptr还是返回unique_ptr.get()?
- 6. 我应该返回null还是抛出异常?
- 7. 我应该返回一个引用还是散列?
- 8. 我应该使用list()还是用括号括起来?
- 9. 我应该使用回调还是应该重写属性?
- 10. 我应该使用Unit还是舍弃我的Scala方法的返回类型?
- 11. 应该IDataErrorInfo.Error返回所有错误还是仅返回属性级错误?
- 12. 返回语句应该在锁内还是外?
- 13. 函数应该返回引用还是对象?
- 14. 这个Json结果应该返回一个404还是200?
- 15. 多态性:为什么使用“List list = new ArrayList”而不是“ArrayList list = new ArrayList”?
- 16. 我应该从函数中返回一个数组还是一个集合?
- 17. NSCopying和copyWithZone: - 他们应该返回[自我保留]还是其他?
- 18. 我的帮助器方法应该返回一个字符还是字符串?
- 19. 我的持久化类应该返回Option还是依赖于异常?
- 20. Python:array [x] in O(1)复杂性 - 我应该使用Dictionary还是List?
- 21. 返回ArrayList的SOAP响应
- 22. 我应该使用表格还是div?
- 23. 我应该使用NSOperation还是NSRunLoop?
- 24. 我应该使用SASS还是SCSS?
- 25. 我应该登录还是不登录?
- 26. 我应该学习C++还是ASM?
- 27. 我应该使用SVN还是Git?
- 28. 我应该使用em还是px?
- 29. 我应该使用MapView还是MapFragment
- 30. 我应该用symfony还是不用
+1的图片:) – 2012-04-26 07:14:09
谢谢你的图 – 2012-04-26 09:05:29