Ma tentative de trier un ArrayList en sens inverse (décroissant) commande avec le code suivant - utilisé dans un JSF bean géré pour remplir une grille de données renvoie l'erreur ci-dessous:Java: Tri d'un ArrayList <Object> par ordre décroissant
public List<Surec> getPendingForms() {
...
List<Surec> tersSiraliListe = new ArrayList<Surec>(someSet);
Comparator<Surec> comparator = Collections.reverseOrder();
Collections.sort(tersSiraliListe,comparator);
return tersSiraliListe;
}
Exception:
...
Caused by: javax.el.ELException: /surecler/dashboard.xhtml @43,118 rendered="#{empty surecBean.pendingForms}": Error reading 'pendingForms' on type net.ozar.web.jsfmanaged.SurecBean
at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:76)
at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:390)
... 30 more
Caused by: java.lang.ClassCastException: net.ozar.entity.DerivedFromSurec cannot be cast to java.lang.Comparable
at java.util.Collections$ReverseComparator.compare(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.sort(Unknown Source)
at java.util.Collections.sort(Unknown Source)
at net.ozar.web.jsfmanaged.SurecBean.getPendingForms(SurecBean.java:134)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:83)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
at org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
... 31 more
Depuis je définissais comparateur comme un objet de type < Surec Comparator> Je ne underst et pourquoi l'exception est levée. Tout le monde peut m'aider avec ça?
Il me semble assez bizarre - et mauvais - que Collections.reverseOrder () est paramétré avec un plutôt qu'un >, car il ne peut jamais fonctionner réellement pour des objets non comparables. –