13

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

Мои вопросы:

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

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

Приветствия, Дон

ответ

8

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

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

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

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

Не стесняйтесь, чтобы показать на [email protected]

приветствий, Торстен

+0

Спасибо Torsten. Я немного уверен, чтобы привести это в список рассылки, поскольку я ожидаю, что это уже обсуждалось миллион раз. Я проверю ветку JDK5 – 2008-11-17 19:42:20

+0

Вопрос: Вы знаете, что JDK 1.4 больше не поддерживается солнцем? – 2008-11-18 08:22:30

+0

Просто поднимите его. Нам нужно давление :) – tcurdt 2008-11-18 20:10:34

6

Учитывая, что последнее слово в Джакарте собственного internaldebate было в декабре 07, я бы сказал, что Apache не будет охватывать дженерик, оставляя поле открытым для чего-того java5 дружного как Google Collections.

0

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

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

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

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

9

Рассмотрим Google Collections. От их Javalobby interview:

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

1

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

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

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

0

Существует обобщенный порт Commons Collection 3.1 available here, который мы используем в течение нескольких лет. Работает ли она хорошо, и поскольку она основана исключительно на существующем источнике Commons, у нее есть стабильный API.

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

0

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

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

1

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

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

Смежные вопросы