Bonjour à tous,
Je travaille actuellement sur un petit projet consistant à créer une classe abstraite de graphe la plus générale possible pour ensuite l'appliquer sur un problème d'application.
Je suis parti sur un code avec 4 interfaces représentant chacun un graphe, un noeud, un coté et le "label" des noeuds/cotés (pour des raisons de généralisation, même si à priori dans la plupart des cas, j'imagine qu'utiliser un String aurait suffit).
Je rencontre un petit problème dont je n'arrive pas à sortir ; voici les portions de code concernées :
Interface Edge :
	
	| 12
 3
 4
 5
 
 | public interface Edge<T> {
	public void addData(T data);
	public void removeData(T data);
	public boolean compareTo(Edge<T> edge);
} | 
 Implémentation :
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 
 | import java.util.ArrayList;
 
public class EdgeImplementation<T> implements Edge<T> {
	private Label<T> label;
	private int start;
	private int end;
	private ArrayList<T> data;
 
	public boolean compareTo(EdgeImplementation<T> edge){          // ligne de l'erreur
		if (this.start == edge.start && this.end == edge.end){
			ArrayList<T> data1 = this.data;
			ArrayList<T> data2 = edge.data;
			return data1.equals(data2);
		}
		else return false;
	}
 
       // portion de code en plus ...
 
} | 
 Ce à quoi Eclipse m'affiche une erreur disant que je dois implémenter la méthode héritée compareTo(Edge<T>). Le problème, c'est que si je modifie la ligne de l'erreur en 
	
	public boolean compareTo(Edge<T> edge)
  ... les variables end, start et data ne sont plus reconnues (puisqu'elles sont dans la classe EdgeImplementation et non Edge).
Du coup, il y a sans doute quelque chose que j'ai mal compris sur la manière d'utiliser les interfaces ; pourriez vous m'aider ?
Merci
						
					
Partager