Avertissement Eclipse sur Comparator
Bonjour,
J'utilise des listes de données que je dois pouvoir ordonner suivant plusieurs tris. Ces tris dépendent de la liste et chaque liste peut avoir plusieurs façons d'être triées.
J'ai donc créer une classe ComparatorDonnee qui implémente Comparator.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public class ComparatorDonnee implements Comparator
{
@Override
public int compare(Object arg0, Object arg1)
{
if (arg0 instanceof CentreCivilisationGHM)
return compareCentreCivilisation((CentreCivilisationGHM) arg0,(CentreCivilisationGHM)arg1);
return 0;
}
private int compareCentreCivilisation(CentreCivilisationGHM arg0,
CentreCivilisationGHM arg1)
{
int compare = arg0.getIdCiv() - arg1.getIdCiv();
if (compare != 0) return compare;
return arg0.getIntervalle().compareTo(arg1.getIntervalle());
} |
Donc on teste le type de donnée et on lui applique la comparaison nécessaire.
Lors de l'utilisation j'ai un avertissement :
Type safety: Unchecked invocation sort(List<CentreCivilisationGHM>, ComparatorDonnee) of the generic method sort(List<T>, Comparator<? super T>) of type Collections
sur la ligne : Collections.sort(liste, new ComparatorDonnee());
Code:
1 2 3 4
|
List<CentreCivilisationGHM> liste = new ArrayList<CentreCivilisationGHM>();
liste.addAll(ConnexionBase.getListeCentresCivilisations());
Collections.sort(liste, new ComparatorDonnee()); |
Quelqu'un a une idée ?
J'en profite pour demander s'il est nécessaire de redéfinir equal quand on implémente un comparateur ? Et si oui pourquoi ?