Domanda

Sono stupito che il progetto Apache Commons Collections non sia ancora riuscito a realizzare la loro biblioteca consapevole dei generici. Mi piacciono molto le funzionalità fornite da questa libreria, ma la mancanza di supporto per generics è una grande svolta. Esiste un fork di Lavalabs delle raccolte Commons che supporta i generici , che sembra rivendicare la compatibilità con le versioni precedenti, ma quando ho provato ad aggiornare a questa versione, la mia applicazione web non è stata avviata (in JBoss).

Le mie domande sono:

  • Se qualcuno ha aggiornato con successo da Commons Collections al fork sopra menzionato
  • Se Commons Collections ha in programma di aggiungere il supporto per i generici

A proposito, sono a conoscenza delle raccolte di Google, ma sono riluttante a usarlo fino a quando l'API non si stabilizza.

Saluti, Don

È stato utile?

Soluzione

Ci sono contributi. Verifica JIRA 's

Esiste anche un Branch JDK5 .

Vorremmo aggiungere generici e aggiornare le Collezioni Commons a 1.5 (e 1.6). Il problema più grande è come affrontare la retrocompatibilità. E le persone hanno opinioni molto diverse lì. Per alcuni dei componenti Commons il nuovo JDK chiede quasi una riscrittura per il nuovo IMHO di JDK.

Durante ApacheCon ho sentito l'impulso di molte persone a farlo muovere però. È solo un grosso compito.

Sentiti libero di presentarti su dev@commons.apache.org

applausi, Torsten

Altri suggerimenti

Prendi in considerazione Collezioni di Google . Dalla loro Intervista Javalobby :

  

[Google Collections è] costruito con funzionalità Java 5: generici, enum, tipi di ritorno covarianti, ecc. Quando si scrive codice Java 5, si desidera una libreria di raccolte che sfrutti appieno il linguaggio. Inoltre, abbiamo fatto uno sforzo enorme per rendere la libreria completa, robusta e coerente con le classi di raccolta JDK.

Dato che l'ultima parola in proprio dibattito era nel 07 dic, direi che Apache non abbraccerà i generici, lasciando il campo aperto a qualcosa Compatibile con Java5 come Collezioni Google .

Dico, mordi il proiettile e passa alle raccolte di Google, almeno per il nuovo codice.

So che sei preoccupato per la stabilità, ma la libreria di raccolte di Google è MOLTO vicina a stable per la versione 1.0 - esci nella lista degli sviluppatori o guarda i loro problemi segnalati, sono già molto molto cauti sulle modifiche, specialmente rompendo quelli. Eventuali incompatibilità tra la versione attuale e la (apparentemente imminente) 1.0 finale saranno estremamente minuscole.

Inoltre, se sei preoccupato per la stabilità, scegli una versione (ad esempio quella attuale, 1.0 RC4), e ... non aggiornare. Certo, non otterrai nuove funzionalità, ma le raccolte comuni non sono state aggiornate in modo significativo in diversi anni , quindi stai davvero peggio? Almeno sei congelato su qualcosa con generici e (IMHO) un'API molto migliore.

Il problema generale di BC è che il pacchetto org.apache.commons.collections è stato rinominato in org.apache.commons.collections15 . Non conosco il motivo di questo cambiamento. Prova a rinominarlo, ricompila la libreria ed esegui nuovamente l'applicazione.

Ho riscontrato questo problema utilizzando lo strumento Clirr su commons-collections-3.2.1.jar (da Apache) e collections-generic-4.01.jar (da Lavalabs).

Non riesco a immaginare quale motivo tu possa avere per non usare le raccolte di Google. È abbastanza semplice usare quella libreria.

Per il mio lavoro utilizzo entrambe le raccolte, apache e google.

puoi spiegare di più sul perché non puoi utilizzare le raccolte di Google?

Per quanto riguarda

Esiste un port generico di Commons Collections 3.1 disponibile qui , che abbiamo utilizzato per alcuni anni ormai. Fa bene il lavoro, e poiché si basa rigorosamente sulla fonte Commons esistente, ha un'API stabile.

Potrebbe usare l'aggiornamento per conformarsi alle Commons Commons 3.2, tuttavia.

Leggi sul blog di raccolta, fornisce la comprensione completa del framework di raccolta. http://tech.konnectingtheworld.com/2010/09/ a-note-on-java-collezioni /

Se ritieni che la tua richiesta non abbia ricevuto risposta, contattami. Cercherò di fornirti le informazioni il più possibile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top