Hallo,
ich habe gerade ein Verständnisproblem bei der Lösung einer Uni-Aufgabe...
So richtig hat mir auch kein googeln geholfen, aber vielleicht bin ich auch nur betriebsblind...
Es soll an sich nur das Verhalten der Funktion toArray(Object[] a) einer Collection "imitiert" werden, der Rückgabetyp entspricht also dem Typen des übergebenden Objekts.
Kompilieren lässt sich das ganze, aber beim ausführen bekomme ich dann eine ClassCastException: [Ljava.lang.Object;
Irgendwie bin ich zwar der Sache auf der Spur, aber das "Aha"-Erlebnis kommt noch nicht.
Vielleicht kann mir mal jemand auf die Sprünge helfen??
Danke!
ich habe gerade ein Verständnisproblem bei der Lösung einer Uni-Aufgabe...
So richtig hat mir auch kein googeln geholfen, aber vielleicht bin ich auch nur betriebsblind...
Es soll an sich nur das Verhalten der Funktion toArray(Object[] a) einer Collection "imitiert" werden, der Rückgabetyp entspricht also dem Typen des übergebenden Objekts.
Kompilieren lässt sich das ganze, aber beim ausführen bekomme ich dann eine ClassCastException: [Ljava.lang.Object;
Irgendwie bin ich zwar der Sache auf der Spur, aber das "Aha"-Erlebnis kommt noch nicht.
Vielleicht kann mir mal jemand auf die Sprünge helfen??
Danke!
Code:
public <T> T[] toArray(T[] rei) {
Object[] tmp=new Object[mr.length];
// hier passiert halt was mit tmp...in diesem Fall einfach eine Kopie des Array mr in tmp.
// Auch kann ich kein Array vo Typ T[] erstellen und direkt damit arbeiten...
return((T[])tmp); // das casten in den generischen Typ T[] geht nicht...warum?
} // toArray