Вопрос

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

Мои вопросы:

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

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

Ура, Дон

Это было полезно?

Решение

Есть взносы.Оформить заказ Джира's

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

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

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

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

Ура, Торстен

Другие советы

Учитывать Коллекции Google.Из их Интервью в Джавалобби:

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

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

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

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

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

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

Я нашел эту проблему, используя Клирр инструмент включен commons-collections-3.2.1.jar (от Apache) и collections-generic-4.01.jar (из Лавалабс).

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

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

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

с уважением

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

Однако можно было бы обновить его, чтобы он соответствовал Commons Collections 3.2.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top