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