Généricité et interface Comparable
Bonjour,
J'ai un problème avec une classe generique qui implémente l'interface comparable.
J'ai trouvé une solution, mais il y a des warning qui s'affichent :
j'ai gardé que le code utile.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
@SuppressWarnings("rawtypes")
public abstract class AbstractSommet<T extends Comparable> implements Comparable{
T sommet;
private int dateDebut;
/**
* @return the sommet
*/
protected T getSommet() {
return sommet;
}
@SuppressWarnings("unchecked")
@Override
public int compareTo(Object o) {
AbstractSommet<?> c = ( AbstractSommet<?>) o;
if(this.dateFin < c.dateFin)
return -1;
if(this.dateFin > c.dateFin)
return 1;
return this.sommet.compareTo((T) c.getSommet());
}
} |
Si je met cela, il n'y a plus de warning, mais je n'arrive pas à comparer autre chose que l'élément générique et je ne vois pas à quoi cela pourrai servir :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public abstract class AbstractSommet<T extends Comparable<T>> implements Comparable<T>{
T sommet;
private int dateDebut;
@Override
public int compareTo(T o) {
// TODO Auto-generated method stub
return 0;
}
} |
Je cherche plus à comprendre qu'à vraiment trouver une solution, puisque actuellement cela marche.
Merci d'avance