Eine Methode zum Akzeptieren des Schnittstellentyps anstelle des Klassentyps schreiben

7

Ich versuche, einige Klassen zu erstellen, die eine bestimmte Schnittstelle implementieren (in diesem Fall XYPlottable ) und eine Methode, die mit jeder Klasse umgehen kann, die diese Schnittstelle implementiert.

Bisher habe ich Folgendes (das funktioniert):

%Vor%

Das funktioniert gut. Ich habe auch eine Methode, um alles zu plotten, was XYPlottable ist:

%Vor%

Ich versuche also, es mit einer der oben genannten konkreten Klassen zu verwenden und beschwert sich über inkompatible Typen:

%Vor%

Hier ist der genaue Fehler:

%Vor%

Ich hoffe, dass ich nur einen Moment habe und etwas wirklich Offensichtliches vermisse, aber vielleicht habe ich ein Missverständnis darüber, wie ich Interfaces benutzen soll.

    
Doug Swain 24.04.2011, 15:16
quelle

3 Antworten

16

Die Erklärung der Methode wie folgt sollte funktionieren -

%Vor%

Beachten Sie die Änderung im Parameter List<XYPlottable> bis List<? extends XYPlottable> - Dies wird als Wildcards bezeichnet.
Lesen Sie mehr über generische Platzhalter hier

    
Premraj 24.04.2011, 15:20
quelle
6

Versuchen Sie Folgendes:

%Vor%

in der Methodendeklaration.

Generics in Java können verwirrend sein.

Ссылка

    
duffymo 24.04.2011 15:20
quelle
0

Sie verwenden den konkreten Typ A in Ihrer Werteliste. Dies sollte eine Liste von XYPlottables z. B.

sein %Vor%     
Martin 24.04.2011 15:22
quelle

Tags und Links