eclipse - 为什么 Eclipse API 使用数组而不是集合?

标签 eclipse api eclipse-plugin eclipse-rcp

在 Eclipse API 中,返回和参数类型主要是数组而不是集合。一个例子是 members方法在 IContainer ,返回 IResources[] .

我对为什么会这样很感兴趣。也许它是以下之一:

  • API 是在泛型泛型可用之前设计的,因此 IResource[]比仅仅好 CollectionList
  • 内存问题,例如ArrayList内部保存一个比所需空间更多的数组(以提供 add 的有效实现),而数组总是只为所需的目标大小
  • 构建。
  • 无法在数组上添加/删除元素,因此迭代是安全的(但仍然需要防御性复制,因为仍然可以更改元素,例如将它们设置为 null )

  • 有没有人对为什么以这种方式开发 API 有任何见解或其他想法?

    最佳答案

    将此作为答案发布,因此可以接受。

    Eclipse 早于泛型,他们非常重视 API 的稳定性。此外,在 SWT 传递数组的底层似乎用于反射(reflect)被包装的操作系统 API。一旦你有一堆使用数组的工具,我想保持一致性是有意义的。另请注意,使用反射时,数组不会受到所有类型删除问题的影响。

    是的,我听说集合 api 通常更容易用于动态项目列表。

    关于eclipse - 为什么 Eclipse API 使用数组而不是集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11613277/

    相关文章:

    windows - Windows 的 Eclipse 深色主题 : how to change the color of scroll bars and title bars to dark?

    eclipse - Eclipse 编译器或 javac 中的错误?

    api - 使用 Symfony 实现长轮询 API

    javascript - 尝试使用 API 从交易所获取价格

    c# - System.DllNotFoundException : 'Unable to load DLL ' libwkhtmltox': The specified module could not be found.(HRESULT 异常:0x8007007E)'

    android - Eclipse + Android 无法识别我的(维度)值

    java - : "TestNG Result Listening Job". 期间发生内部错误 端口值超出范围:-1

    android - 超链接显示在错误的地方

    java - 如何在一个类(class)中显示我在另一个类(class)中保存的图片

    eclipse - 你如何找到菜单贡献的locationURI?