Обобщенная коллекция общего достояния - PullRequest
13 голосов
/ 17 ноября 2008

Я удивлен, что проект Apache Commons Collections до сих пор не успел сделать так, чтобы их библиотека знала дженерики. Мне действительно нравятся функции, предоставляемые этой библиотекой, но отсутствие поддержки обобщений является серьезным препятствием. Существует Lavalabs форк коллекций Commons, который поддерживает дженерики , которые, кажется, требуют обратной совместимости, но когда я попытался обновить эту версию, мое веб-приложение не запустилось (в JBoss).

Мои вопросы:

  • Успешно ли обновлен кто-либо из коллекций Commons на упомянутую выше развилку
  • Если Commons Collections планирует добавить поддержку дженериков

Кстати, я знаю о коллекциях Google, но не хочу использовать его, пока API не стабилизируется.

Ура, Дон

Ответы [ 8 ]

9 голосов
/ 28 ноября 2008

Рассмотрим Коллекции Google . Из их интервью Javalobby :

[Коллекции Google] построены с функциями Java 5: обобщениями, перечислениями, ковариантными типами возвращаемых данных и т. Д. При написании кода Java 5 вам нужна библиотека коллекций, которая в полной мере использует язык. Кроме того, мы приложили огромные усилия, чтобы сделать библиотеку полной, надежной и совместимой с классами коллекций JDK.

8 голосов
/ 17 ноября 2008

Есть вклады. Оформить заказ jira 's

Существует также ветка JDK5 .

Мы хотели бы добавить дженерики и обновить коллекции Commons до 1.5 (и 1.6). Самая большая проблема - как решить проблему обратной совместимости. И у людей там очень разные мнения. Для некоторых компонентов Commons новый JDK почти просит переписать новый JDK IMHO.

Во время ApacheCon я почувствовал побуждение нескольких людей, чтобы заставить это двигаться, хотя. Это просто большая задача.

Не стесняйтесь появляться на dev@commons.apache.org

ура, Торстен

6 голосов
/ 17 ноября 2008

Учитывая, что последнее слово в собственных внутренних дебатах Джакарты было в декабре 2007 года, я бы сказал, что Apache не будет использовать дженерики, оставляя поле открытым для чего-то дружественного к Java5, например Коллекции Google .

1 голос
/ 10 января 2011

Общая проблема BC заключается в том, что пакет org.apache.commons.collections был переименован в org.apache.commons.collections15. Я не знаю причину этого изменения. Попробуйте переименовать его обратно, перекомпилировать библиотеку и снова запустить приложение.

Я нашел эту проблему с помощью инструмента Clirr на commons-collections-3.2.1.jar (от Apache) и collections-generic-4.01.jar (от Lavalabs).

1 голос
/ 09 декабря 2009

Я говорю: прикуси пулю и переключись на google-collection, хотя бы для нового кода.

Я знаю, что вы беспокоитесь о стабильности, но библиотека google-подборок ОЧЕНЬ близка к стабильной для версии 1.0 - зависайте в списке разработчиков или смотрите их сообщения о проблемах, они уже очень и очень осторожны в отношении изменений, особенно ломать Любые несовместимости между текущим выпуском и (казалось бы, неминуемой) версией 1.0 будут крайне незначительными.

Кроме того, если вы беспокоитесь о стабильности, выберите версию (например, текущую, 1.0 RC4) и ... просто не обновляйте. Конечно, вы не получите никаких новых функций, но коллекции общих ресурсов не обновлялись сколько-нибудь значимым образом в течение нескольких лет , так что, действительно ли вы хуже? По крайней мере, вы застряли на чем-то с генериками и (ИМХО) гораздо лучшим API.

0 голосов
/ 03 октября 2010

Прочитайте в блоге о коллекции, это даст вам полное представление о структуре коллекции. http://tech.konnectingtheworld.com/2010/09/a-note-on-java-collections/

Если вы чувствуете, что на ваш запрос не было ответа, свяжитесь со мной. Я постараюсь предоставить вам информацию как можно больше.

0 голосов
/ 09 декабря 2009

Существует обобщенный порт коллекций Commons 3.1 , доступный здесь , который мы используем уже несколько лет. Хорошо справляется со своей задачей, и, поскольку он основан исключительно на существующем источнике Commons, у него стабильный API.

Может использоваться обновление, чтобы соответствовать Commons Collections 3.2, однако.

0 голосов
/ 19 ноября 2008

Я не могу представить, по какой причине вы можете не использовать коллекции Google. Использовать эту библиотеку довольно просто.

Для своей работы я использую обе коллекции Apache и Google.

Можете ли вы объяснить, почему вы не можете использовать коллекции Google?

привет

...