A voir également:
- Question sur l'interface comparable en java
- Common interface 5v only ✓ - Forum Vidéo/TV
- Scanf en java ✓ - Forum Java
- Jeux java itel ✓ - Forum Jeux vidéo
- Java runtime - Télécharger - Langages
- Java apk - Télécharger - Langages
1 réponse
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
8 nov. 2012 à 12:25
8 nov. 2012 à 12:25
val est un Object, mais tu utilises la méthode compareTo qui n'existe pas dans Object, donc ton code ne marchera que si val est un objet bien particulier qui possède la méthode compareTo, c'est à dire qui implémente Comparable. Donc ce que tu fais ici, c'est que tu précises que val est un Comparable, ce qui fera ce que tu veux si c'est bien un Comparable, mais plantera en général.
En fait le mieux ce serait d'écrire recherchePréfixé(Comparable val, Arbre b), comme ça il n'y aurait plus de problème, mais quand on manipule les arbres on est en général beaucoup plus précis en faisant des trucs comme recherchePréfixé(T val, Arbre<T> b), avec T qui implémente Comparable<T>, mais je ne sais pas si tu as déjà vu ça.
En fait le mieux ce serait d'écrire recherchePréfixé(Comparable val, Arbre b), comme ça il n'y aurait plus de problème, mais quand on manipule les arbres on est en général beaucoup plus précis en faisant des trucs comme recherchePréfixé(T val, Arbre<T> b), avec T qui implémente Comparable<T>, mais je ne sais pas si tu as déjà vu ça.
8 nov. 2012 à 13:33
8 nov. 2012 à 14:24
La déclaration de ta classe Arbre devrait donc être un peu plus compliquée, mais ça permet d'être plus rigoureux dans l'utilisation des données.
Remarque : recherchePréfixé devrait s'appliquer sur l'arbre courant this, et pas sur l'arbre b passé en paramètre, ou alors la méthode doit être déclarée static (puisque this n'est pas utilisée).
public class Arbre<T extends Comparable<T>> { public T getValeur(); //public boolean recherchePréfixé(T val, Arbre<T> b); public boolean recherchePréfixé(T val); // plus logique //public static <T extends Comparable<T>> boolean recherchePréfixé(T val, Arbre<T> b); }8 nov. 2012 à 14:36
8 nov. 2012 à 15:13