2017-03-26 3 views
-1

So habe ich eine generische Schnittstelle, die zwei Parameter hat, so dass Typ in einer anderen Klasse implementiert, in der ich einen Konstruktor erstellt. In meiner Hauptklasse versuche ich eine arrayList von Objekten zu erstellen, die den Konstruktor verwenden, den ich in der Klasse erstellt habe, in der ich die generische Schnittstelle implementiert habe. Ich brauche nur Hilfe beim Einrichten der ArrayList für diesen Prozess. Jede Hilfe würde sehr geschätzt werden. Dies ist die Schnittstelle:Erstellen von ArrayLists mit Generics und Schnittstellen

public interface Trip<K, T> { 
    public K getPerson(); 
    public T getLocation(); 
} 

Dies ist die Umsetzung:

public class TripImpl <K,T> implements Trip <K,T> { 
    private K person; 
    private T location; 
    private Date dateOfVisit; 
    public TripImpl(K person, T locations, Date dateOfVisits){ 
     person = persons; 
     location = locations; 
     dateOfVisit = dateOfVisits; 
    } 
//theres more code with the getters but this is just to show the constructor 
} 

Hauptklasse:

public class Collect { 
    ArrayList <TripImpl> tlist = new ArrayList<TripImpl>(); 
     String persons, locatione; 
     Date visitd; 
     for (int i =0; i<uPerson.length; i++){ 
      persons = uPerson[i]; 
      locatione = uLocation[i]; 
      visitd = uDate[i]; 
      TripImpl u<String, String> = new TripImpl<String, String>(persons, locatione, visitd); 
      ulist.add(u); 
     } 
} 

Es ist mir in der Hauptklasse mit der ersten Zeile einen Fehler gibt. Es besagt, dass TripImpl ein Rohtyp ist und dass Verweise auf den generischen Typ TripImpl parametrisiert werden sollten

+1

Bitte den Code anzeigen. – ravi

+0

Und erkläre, wo du feststeckst. – shmosel

+0

Entschuldigung, dass ich es bearbeitet habe, um den Code und wo ich stecke – Plumorane

Antwort

1

Hilft das?

VisitImpl<String, String> u = new VisitImpl<String, String>(persons, locatione, visitd); 
+0

Ja! Das half mir, den Fehler zu beheben, den ich bekam, als ich versuchte, das neue Trip-Gerät zu erstellen. Aber jetzt gibt es ein Problem mit meiner ersten Zeile: ArrayList tlist = new ArrayList (); Der Fehler sagt, dass "TripImpl ist ein Rohtyp und Referenzen sollten parametrisiert werden" – Plumorane

+1

@Plumorane Dann tun Sie dies: 'ArrayList >' – shmosel

+0

Gut zu helfen. Wenn Sie zu mehr Ärger kommen, ist es vielleicht am besten, eine andere Frage zu öffnen –

Verwandte Themen