在 Eclipse API 中,返回和参数类型大多是数组而不是集合。一个例子是members
on 方法IContainer
,它返回IResources[]
.
我对为什么会这样很感兴趣。也许它是以下之一:
- API 是在泛型泛型可用之前设计的,因此
IResource[]
比仅仅Collection
或List
- 内存问题,例如,
ArrayList
内部保存了一个数组,该数组的空间比需要的多(以提供有效的实现add
),而数组总是为所需的目标大小而构建 - 不可能在数组上添加/删除元素,因此迭代是安全的(但防御性复制仍然是必要的,因为仍然可以更改元素,例如将它们设置为
null
)
有没有人有任何见解或其他想法为什么 API 是这样开发的?