在Eclipse API中,返回和参数类型主要是数组而不是集合。一个示例是members
上的IContainer
方法,它返回IResources[]
。
我感兴趣的是为什么会这样。也许它是以下之一:
IResource[]
优于Collection
或List
ArrayList
内部拥有一个数组,该数组具有比所需更多的空间(以提供add
的有效实现),而数组总是仅为所需的目标大小构建null
)有没有人有任何见解或其他想法为什么以这种方式开发API?
答案 0 :(得分:1)
将此作为答案发布,以便可以接受。
Eclipse早于泛型,他们对API稳定性非常认真。此外,在较低级别的SWT传递数组似乎用于反映被包装的操作系统API。一旦你有一堆使用Arrays的工具,我想保持一致是有意义的。另请注意,使用反射时,数组不会受到所有类型擦除问题的影响。
是的,我听说你收集api通常更容易使用动态项目列表。