Ich habe eine Java-KlasseJava Arraylist addAll mit generischem Typ
public class PointCloud<T extends Point>
{
protected ArrayList<T > points = null;
public ArrayList<T> getPoints()
{
return points;
}
public void addPoints(ArrayList<T> arrayList)
{
this.points.addAll(arrayList);
}
public static PointCloud<? extends Point> combine(ArrayList<PointCloud<? extends Point>> pcList)
{
PointCloud<? extends Point> combinated_pc = new PointCloud<>();
for(PointCloud<? extends Point> pc: pcList)
{
combinated_pc.addPoints(pc.getPoints());
}
return combinated_pc;
}
}
Mein Java-Fehler ist:
Verfahren
addPoints(ArrayList < capture#8-of ? extends Point>)
im TypPointCloud<capture#8-of ? extends Point>
ist nicht anwendbar für die Argumente (ArrayList < capture#9-of ? extends Point>
)
Danke für Ihre Antwort, das Problem hier ist, dass die Methode statisch ist, daher ist T nicht möglich. – Morkhitu
@Morkhitu eigentlich bekommst du es nicht. Der generische Typ T wird angewendet, weil er statisch ist. Schauen Sie genau hin. T ist kein Rückgabetyp. Der Rückgabetyp ist 'PointCloud'. Sie müssen lernen, wie Sie Generika für statische Methoden verwenden. –
@Morkhitu Ich habe meine Antwort bearbeitet, um Ihr Missverständnis mit T in der Klasse Definition zu lösen. –