Probleme implementation compareTo

Résolu
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 5 mars 2009 à 09:12
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 5 mars 2009 à 09:58
Ce message fait suite a celui-ci http://www.javafr.com/infomsg.aspx?ID=1278511

J'essaye d'implémenter la fonction compareTo() mais, eclipse détecte une erreur, il veut que je mette abstract dans ma classe mais, je ne peux pas utiliser une classe abstraite. Je ne sais pas comment faire...
Voici mon code

public class Carte implements Comparable {
    private Symbole formeCarte;
    private Color couleurCarte;
    ...................
public int compareTo(Carte carte2) {

           boolean inferieure=false;
            // Si une carte Vide est inférieure a toute carte
            if (this.isVide()==true){
                inferieure=true;
            }
            // On commence a trier les cartes par couleur
            // Si le booleen si dessous est vrai alors, on sait que les couleurs ne sont pas égales
            // en effet, l'inégalité dans la définition du booleen de la fonction précédente est stricte
            if (couleurInferieure(this.getCouleur(), carte2.getCouleur())){
                inferieure=true;
            }
            else {
                if(this.getCouleur().equals(carte2.getCouleur())){
                    // Dans ce cas, les cartes ont la même couleur
                    // On va donc les comparer par valeur
                    if(this.getValeur()<carte2.getValeur()){
                        inferieure=true;                  
                    }
                    else {
                        if (this.getValeur().equals(carte2.getValeur())){
                            //Dans ce cas, les cartes ont même couleurs, même valeurs
                            //On les compare par forme
                            if (this.getForme().formeInferieure(carte2.getForme())){
                                inferieure=true;
                            }
                            else{
                                if(this.getForme().equals(carte2.getForme())){
                                    inferieure=true;
                                }
                            }
                        }
                    }
                }
            }
            if (inferieure) {
                return -1;
           } else {
                return 1;
           }
       
    }

Merci

2 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
5 mars 2009 à 09:56
Salut,

Si tu n'utilises pas les génériques :
public class Carte implements Comparable {
    ...................
    public int compareTo(Object o) {
        Carte carte2 = (Carte)o;
        ...
    }
}

Si tu utilises les génériques :
public class Carte implements Comparable<Carte> {
    ...................
    public int compareTo(Carte carte2) {
        ...
    }
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
5 mars 2009 à 09:58
parfait

merci
0
Rejoignez-nous