Bonjour,
J'ai le code suivant :
Je dois comparer les champs (c1 et c2) de deux objets de données (d1 et d2).
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); }
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 ?
Partager