Bonjour,

J'ai le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
@SuppressWarnings("unchecked")
@Override public int compare(Data d1, Data d2)
{
    Comparable<?> c1 = (d1 != null)? d1.getField(sortFieldId) : null;
    Comparable<?> c2 = (d2 != null)? d2.getField(sortFieldId) : null;
 
    if (c1 == null)
        return -1;
 
    if (c2 == null)
        return 1;
 
    if (sortAsc)
        return ((Comparable)c1).compareTo((Comparable) c2);
    else
        return ((Comparable)c2).compareTo((Comparable)c1);
}
Je dois comparer les champs (c1 et c2) de deux objets de données (d1 et d2).
J'ai écrit un truc qui fonctionne (en virant les warnings sur les 2 derniers return par @SuppressWarnings("unchecked")).
Bon, ça fonctionne car c1 et c2 sont toujours du même type et sont toujours des objets comparables (ex Comparable<String>, Comparable<Integer> ...)

Seulement, je ne trouve pas ceci très élégant !

Alors, je demande à ceux qui maitrisent les generics s'il y a une manière plus propre d'écrire cela ?