2010-03-21 4 views
1

Quand je tente de compiler ceci:classe ou d'une interface erreur attendue (java)

public static int compareCardhl (Card c1, Card c2) 
} 
if (c1.suit > c2.suit) return 1 ; 
if (c1.suit < c2.suit) return -1 ; 
if (c1.rank > c2.rank) return 1 ; 
if (c1.rank < c2.rank) return -1 ; 
return 0; 
} 

Je reçois beaucoup d'erreurs attendues classe ou intereface. Ils pointent tous vers if's. je reçois également une erreur ; expected à la fin de Card c2).

Qu'est-ce qui ne va pas ici?

Répondre

5

sur la ligne 2 du support est faux, il devrait être {

+0

votre droit. Je suis tellement mauvais de remarquer des choses comme ça. – David

+1

Tout éditeur de code décent peut vous aider avec des fonctionnalités telles que le pliage des blocs de code et la correspondance des parenthèses: si un bloc ne peut pas être plié ou se comporte mal (trop ou trop peu de lignes sont cachées), quelque chose ne va pas avec les supports du bloc. Le fait de placer le curseur sur l'une des parenthèses (ouvreur ou plus proche) devrait mettre en évidence sa paire correspondante. –

+3

C'est tout? LOL. –

1

Une suggestion légère si je peux me permettre, il est probablement mieux pour ce que vous essayez de faire votre classe de carte implémente l'interface Comparator

public interface Comparator<T> { 
    public int compare(T t1, T t2); 
} 
+0

Pourquoi devrais-je utiliser l'interface du comparateur? – David

+0

Salut David, L'interface du comparateur vous donnera un ordre de sortie sur toutes les collections qui le supportent. La définition du comparateur est la suivante: "Renvoie un entier négatif, zéro ou un entier positif car le premier argument est inférieur, égal ou supérieur au second." On dirait que vous essayez d'accomplir la même chose, donc pas besoin de réinventer la roue. Il utilisera également votre API de manière plus intuitive lorsque vous utiliserez une interface connue. J'espère que c'est clair, si ce n'est pas s'il vous plaît faites le moi savoir. – Ioannis

Questions connexes