Сбор обобщенных коллекций

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

Мои вопросы:

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

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

Cheers, Дон

Ответы

Ответ 1

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

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

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

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

Не стесняйтесь появляться на [email protected]

веселит, Торстен

Ответ 2

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

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

Ответ 3

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

Ответ 4

Я говорю, кусаю пулю и переключаюсь на google-коллекции, по крайней мере для нового кода.

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

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

Ответ 5

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

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

Ответ 6

Я не могу представить, какую причину вы можете не использовать в коллекциях google. Это довольно простая в использовании библиотека.

В моей работе я использую как коллекцию apache, так и коллекцию google.

можете ли вы объяснить, почему вы не можете использовать сбор google?

рассматривает

Ответ 7

Здесь имеется обобщенный порт Commons Collections 3.1 который мы используем уже несколько лет. Работает ли она хорошо, и поскольку она основывается исключительно на существующем источнике Commons, у нее есть стабильный API.

Он может использовать обновление для соответствия Commons Collections 3.2.

Ответ 8

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

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