Ho un problema di litte e mi chiedevo come risolverlo. Ho una classe generica Tuple<A,B>
e adesso vorrei ordinare loro tuple in base alla A e B. Si dovrebbe essere simile a questo:Assicurarsi che gli oggetti implementino Comparable
Celebrita:
(1,5) (2,8) (6,8) (1,4) (2,4)
Ordinati:
(1,4) (1,5) (2,4) (2,8) (6,8)
Per Per questo motivo ho pensato di implementare un metodo di confronto generico (public int compareTo(Tuple<A, B> other)
) nella classe Tuple. L'unico problema è che tutti gli oggetti per cui è possibile parametrizzare la classe (ad esempio A = Integer, B = String) devono implementare anche il metodo compareTo affinché tutto funzioni.
C'è un modo per garantire che tutti gli oggetti che la tupla può contenere implementino l'interfaccia comparabile?
Oppure ci sono altri suggerimenti su come risolvere questo problema?
Grazie
Preferisco "A estensibile Comparabile super A>", ma +1 per l'implementazione Comparabile sulla stessa Tupla. Avrei dovuto ricordarmelo. –
Non dovresti usare 'A extends Comparable ' ... questo non funzionerà con classi meno recenti che implementano raw 'Comparable', tra le altre cose. la firma di mmyers con "A extends Comparable super A>" è corretta. – ColinD
Ah, grazie. Ho modificato la mia risposta in modo da non indurre in errore e ho svalutato la versione di mmyers. – Lyle