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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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