Fehler für generische Schnittstelle: Die Schnittstelle Observer kann nicht mehrfach mit verschiedenen Argumenten implementiert werden:

8

Ich erhalte diesen Fehler in Eclipse beim Schreiben einer GWT-App

  

Die Schnittstelle Observer kann nicht sein   Mehrmals implementiert mit   verschiedene Argumente:   Beobachter & lt; CompositeListData & gt; und   Beobachter & lt; DialogBoxAuthenticate & gt;

%Vor%

Hier ist die Schnittstelle

%Vor%

Stimmt das? Wie kann ich dieses Problem umgehen, ohne eine Vielzahl von Observer-Klassen für jedes mögliche Ereignis erstellen zu müssen?

    
jax 26.11.2010, 03:57
quelle

3 Antworten

3

Wegen des Löschens des Typs können Sie dieselbe Schnittstelle nicht zweimal (mit verschiedenen Typparametern) implementieren. Der Fehler der Eclipse, den Sie erhalten, ist also korrekt.

Sie könnten eine Basisklasse für alle möglichen "T" hinzufügen, was abhängig vom Umfang dieser Klassen einschränkend und nicht sinnvoll sein kann. Und Sie haben eine Lösung angefordert, die Sie daran hindert, eine Vielzahl von Observer-Klassen für jedes mögliche Ereignis zu erstellen (ich nehme Schnittstellen an). Nun, ich kann nicht sehen, wie Sie das sonst tun würden, ohne die Sicherheit bei der Kompilierung zu gefährden.

Ich würde Folgendes vorschlagen

%Vor%

Das Code-Durcheinander ist nicht schrecklich und wenn Sie sie alle in einer Datei ablegen, werden sie leicht zu referenzieren und zu pflegen sein. Hoffe ich habe geholfen

BEARBEITEN : Nachdem ich etwas auf Google gegraben habe (was mich auf stackoverflow! hinwies), wurde Ihre Frage anders gestellt und ähnlich beantwortet hier

    
Salman Paracha 26.11.2010, 04:38
quelle
0

Composite muss Observer bereits implementieren. Ist das wirklich beabsichtigt? Sie möchten, dass diese CompositeWordLists-Klasse zwei Möglichkeiten auf einmal beobachtet?

    
EJP 26.11.2010 04:36
quelle
0

Ich bin mir nicht sicher, ob das helfen kann, aber ich stieß heute auf den gleichen Java-Kompilierfehler.

Ich habe meinen Fall teilweise gelöst, indem ich alle gemeinsam genutzten Implementierungen extrahiert habe, die ich in eine parametrisierte abstrakte Klasse geschafft habe:

%Vor%     
Campa 04.12.2015 18:08
quelle

Tags und Links