Sep 22 2008
Ein Array Casten
Egal in welcher Programmiersprache man nun zu Hause ist, Array’s begegneten einem Tag ein Tag aus. Gerade in meinem Java Projekten komme ich öfters an den Punkt wo ich ein Array von Objekten auf einen bestimmten Typ casten möchte um z.B. aus einem Object[] ein String[] machen zu können.
Leider stellt sich Java hier ein wenig quer und lässt ein Casten von kompletten Objekt-Arrays nicht zu, so dass ich basierend auf den Java Generics folgende kleine Workaround Funktion geschrieben habe:
public static <T>T[] castArray(Class<T> pClass, Object[] pObject)
{
ArrayList<T> lList = new ArrayList<T>(pObject.length);
for (int i = 0; i < pObject.length; i++)
lList.add((T)pObject[i]);
return lList.toArray((T[]) Array.newInstance(pClass, lList.size()));
}
Wenn ich also ein Object Array zu einem String Array umwandeln möchte würde dies über folgenden Aufruf geschehen:
String[] lStringArray = castArray(String.class, myObjectArray);
