13

我很惊讶Apache Commons Collections项目仍然没有让他们的库泛型感知。我真的很喜欢这个库提供的功能,但是缺乏对泛型的支持是一个很大的障碍。Commons Collections的Lavalabs fork 确实支持 generics,这似乎声称向后兼容,但是当我尝试更新到这个版本时,我的 Web 应用程序无法启动(在 JBoss 中)。

我的问题是:

  • 是否有人已成功从 Commons Collections 更新到上述分叉
  • 如果 Commons Collections 有任何计划增加对泛型的支持

顺便说一句,我知道 Google 集合,但在 API 稳定之前不愿意使用它。

干杯,唐

4

8 回答 8

9

考虑谷歌收藏。从他们的Javalobby 采访中

[Google Collections] 使用 Java 5 特性构建:泛型、枚举、协变返回类型等。在编写 Java 5 代码时,您需要一个充分利用该语言的集合库。此外,我们付出了巨大的努力使该库完整、健壮并与 JDK 集合类保持一致。

于 2008-11-28T02:21:04.260 回答
8

有贡献。查看jira

还有一个JDK5 分支

我们确实想添加泛型并将 Commons Collections 更新到 1.5(和 1.6)。最大的问题是如何解决向后兼容性问题。人们对那里有非常不同的看法。对于某些 Commons 组件,较新的 JDK 几乎要求重写新的 JDK 恕我直言。

不过,在 ApacheCon 期间,我感到有几个人有推动这项工作的冲动。这只是一项艰巨的任务。

随意出现在 dev@commons.apache.org

干杯,托斯滕

于 2008-11-17T18:46:50.657 回答
6

鉴于 Jakarta内部 辩论的最后一句话是在 12 月 7 日,我会说 Apache 不会接受泛型,从而为像Google Collections这样的 Java5 友好型开放领域。

于 2008-11-17T16:50:48.253 回答
1

我说,咬紧牙关并切换到 google-collections,至少对于新代码。

我知道您担心稳定性,但是 google-collections 库在 1.0 版本中非常接近稳定——在开发人员列表中闲逛或观看他们报告的问题,他们已经对更改非常谨慎,尤其是破坏性更改。当前版本和(似乎即将到来的)1.0 最终版本之间的任何不兼容都将非常小。

另外,如果您担心稳定性,请选择一个版本(例如当前版本,1.0 RC4),然后……不要升级。当然,您不会获得任何新功能,但 commons-collections 已经好几年没有以有意义的方式进行更新了,所以您的情况真的更糟吗?至少你对泛型和(恕我直言)更好的 API 感到困惑。

于 2009-12-09T09:52:22.220 回答
1

一般的 BC 问题是包org.apache.commons.collections重命名为 org.apache.commons.collections15. 我不知道这种变化的原因。尝试重命名它,重新编译库并再次运行您的应用程序。

我在(来自 Apache)和(来自 Lavalabs)上使用Clirr工具发现了这个问题。commons-collections-3.2.1.jarcollections-generic-4.01.jar

于 2011-01-10T13:18:42.763 回答
0

我无法想象你有什么理由不使用谷歌收藏。使用该库非常简单。

对于我的工作,我同时使用 apache 集合和 google 集合。

你能解释一下为什么你不能使用谷歌收藏吗?

问候

于 2008-11-19T00:47:08.227 回答
0

这里有一个通用的 Commons Collections 3.1 端口,我们已经使用了几年了。很好地完成了这项工作,并且由于它严格基于现有的 Commons 源,因此它具有稳定的 API。

不过,它可以使用更新来符合 Commons Collections 3.2。

于 2009-12-09T09:56:08.953 回答
0

阅读收藏博客,它提供了对收藏框架的完整理解。 http://tech.konnectingtheworld.com/2010/09/a-note-on-java-collections/

如果您觉得您的查询没有得到答复,请与我联系。我会尽力为您提供信息。

于 2010-10-03T16:44:13.440 回答