coleção commons genericized
-
08-07-2019 - |
Pergunta
Eu estou surpreso que o Apache Commons Collections projeto ainda não tem em torno de tomada de seus genéricos com reconhecimento de biblioteca. Eu realmente gosto os recursos fornecidos por esta biblioteca, mas a falta de apoio para genéricos é um grande turn-off. Há um Lavalabs fork do Commons Collections que não genéricos de apoio , o que parece reclamar compatibilidade com versões anteriores, mas quando eu tentei atualizar para esta versão, a minha aplicação web falhou ao iniciar (em JBoss).
As minhas perguntas são:
- Se alguém tiver atualizado com sucesso a partir Commons Collections ao garfo mencionado acima
- Se Commons Collections tem quaisquer planos para adicionar suporte para genéricos
BTW, eu estou ciente de coleções do Google, mas estou relutante em usá-lo até que as estabiliza API.
Cheers, Don
Solução
Existem contribuições. Caixa do jira 's
Há também um JDK5 ramo .
Nós fazemos gostaria de adicionar os genéricos e atualizar Commons Collections a 1,5 (e 1.6). O maior problema é a forma de compatibilidade endereço para trás. E as pessoas têm opiniões muito diferentes lá. Para alguns dos componentes Commons mais recente JDK quase pede uma reescrita para o novo JDKs IMHO.
Durante ApacheCon senti o desejo através de várias pessoas para obter esse movimento embora. É apenas uma grande tarefa.
Sinta-se livre para aparecer na dev@commons.apache.org
elogios, Torsten
Outras dicas
Google Collections . De sua Javalobby entrevista :
[Google Collections é] construído com Java 5 características: os genéricos, enumerações, tipos de retorno covariantes, etc. Ao escrever Java 5 código, você quer uma biblioteca de coleções que tira o máximo partido da língua. Além disso, colocamos enorme esforço em tornar a biblioteca completa, robusta e consistente com as classes de coleção do JDK.
Tendo em conta que a última palavra na própria interna de Jacarta debate foi em 07 de dezembro, eu diria que o Apache não irá abraçar os genéricos, deixando o campo aberto para algo java5 amigável como Google Collections .
Eu digo, morder a bala e mudar para o Google-coleções, pelo menos para o novo código.
Eu sei que você está preocupado com a estabilidade, mas a biblioteca do Google-coleções está muito perto de estável para versão 1.0 - sair na lista dev ou assistir seus problemas relatados, eles já são muito, muito cauteloso sobre as mudanças, especialmente aqueles de quebra. Eventuais incompatibilidades entre a versão atual e (aparentemente iminente) 1.0 final, vão ser extremamente pequeno.
Além disso, se você está preocupado com a estabilidade, escolher uma versão (por exemplo, o atual, 1.0 RC4), e ... apenas não atualizar. Claro, você não terá nenhuma novos recursos, mas commons-coleções não foi atualizado de forma significativa em vários anos , então você está realmente em situação pior? Pelo menos você está congelado em algo com os genéricos e (IMHO) um muito melhor API.
O problema geral BC é que org.apache.commons.collections
pacote foi renomeado para org.apache.commons.collections15
. Eu não sei a razão dessa mudança. Tente renomeá-lo de volta, recompilar a biblioteca e executar o aplicativo novamente.
Eu encontrei este problema usando Clirr ferramenta em commons-collections-3.2.1.jar
(do Apache) e collections-generic-4.01.jar
(de Lavalabs).
Eu não posso imaginar o que razão você pode ter para não usar o Google coleções. É muito simples de usar essa biblioteca.
Para o meu trabalho eu uso ambos, apache coleções e google coleções.
Você pode explicar mais sobre por que você não pode usar o Google coleções?
relação
Há uma porta genericised de Commons Collections 3,1 disponível aqui , que temos vindo a utilizar para alguns anos. Faz o trabalho muito bem, e uma vez que ele é baseado estritamente na fonte Commons existente, ele tem uma API estável.
Ele poderia utilizar a actualização em conformidade com Commons Collections 3.2, no entanto.
Ter uma leitura no blog coleção, que proporcionam a compreensão completa do quadro de recolha. http://tech.konnectingtheworld.com/2010/09/ a-note-on-java-coleções /
Se você sentir que você consulta não foi respondida, entre em contato comigo. Vou tentar fornecer-lhe as informações, tanto quanto eu puder.