Lorsque je tente de faire une comparaison entre deux éléments comparables, le code ci-dessous jette cette erreur:méthode Java compareTo Erreur: java.lang.Integer ne peut pas être jeté à java.lang.Boolean
java.lang.Integer cannot be cast to java.lang.Boolean
ArrayList<Comparable> list = new ArrayList<Comparable>();
public void myMethod(ArrayList <Comparable> list) {
for(int i = 1; i < list.size()-1;i++){
//Comparable current = list.get(i);
int j = i;
while((j > -1) && ((list.get(j-1).compareTo(list.get(i))) < 0)){
j--;
}
list.add(j, list.remove(list.get(i)));
}
System.out.println(list);
}
Le but de la ligne suivante est de comparer deux l'objet courant dans la liste au précédent. Notez qu'il existe uniquement des objets Integer dans la liste de tableaux appelée 'list'.
while(((list.get(j - 1).compareTo(current)) < 0) && (j > -1))
Quelqu'un peut-il expliquer ce qui se passe là-bas?
Quel est le type de données pour la liste? – Suraj
Il manque trop d'informations dans votre question pour permettre une réponse précise. S'il vous plaît fournir un MCVE approprié –
Objets entiers – Matt