相关疑难解决方法(0)

API java 5及更多:我应该返回数组还是Collection?

本着最佳实践的精神:总是返回一个____,从来没有____,我在即将从JDK1.4.2迁移到JDK5等等时遇到了类似的问题.(是的,我知道,JDK1.4.2是EOL! ;-)).

对于返回集合的函数(不是简单的属性集合),我总是更喜欢(在JDK1.4.2中)返回一个Array而不是一个通用的List,因为:

  • 它强制执行返回类型(MyObject[]而不是对象列表,更多类型安全的静态 - 如'编译' - 级别)
  • 它为返回的集合建议了一个"只读"字符(将一个元素添加到集合中会更复杂,即使这不像c#中的'只读'关键字那样严格).这与说"不可变"不同,因为数组中的引用仍然可以修改...

当然,我总是创建这个返回的数组(我没有公开任何'内部'数组)

现在,在JDK5及更多版本中,List<MyObject>如果我愿意,我可以使用它.

选择返回MyObject[]而不是List或Collection<MyObject>在java5中编码时有什么好理由?

如果Collection<MyObject>使用奖金,可以:

  • 对返回的集合强制执行只读属性?(没有add()remove()可能)
  • 对返回的集合强制执行不可变的方面?(甚至不能修改该集合的引用)

PS:JavaGenericFAQ没有那个.

java arrays generics api collections

31
推荐指数
2
解决办法
5936
查看次数

标签 统计

api ×1

arrays ×1

collections ×1

generics ×1

java ×1