"Versucht, eine inkompatible Rückgabetyp" mit Interface-Vererbung
Ich in ein problem mit inkompatiblen Rückgabetypen, verwenden von Vererbung.
public interface A { }
public interface B extends A { }
public interface C {
Map<String, A> getMapping();
}
public interface D extends C {
Map<String, B> getMapping();
}
Gibt es eine Möglichkeit, diese Arbeit zu machen?
Recht, der compiler sagt mir, ich bin 'Versucht, eine inkompatible return type" auf die Schnittstelle, D.
- richtig, Fragen aktualisiert - sorry!
- Das ist eine große Veränderung für Sie zu Ihrer Frage. @user3707125: hat deine Lösung dann.
- Klingt wie eine Antwort hier Jungs...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schlage ich vor, Sie
Sagt "Eine Karte, die Karten
String
zuA
oder ein Untertyp vonA
". Dies ist kompatibel mitMap<String, B>
.Set<MyObjectInterface>
und eine implementierende Klasse zurück gesetztSet<MyObject>
. Dies führte zu dem Fehler in der Frage. Änderung der interface-Deklaration zuSet<? extends MyObjectInterface>
behoben mein problem. Danke!!!Folgende änderungen vornehmen: