[QUOTE=Natac]Wenn du primitive Datentypen in generischen Klassen verwenden möchtest, dann musst du die Wrapper-Klassen (Integer, Double, etc… ) verwenden. Arrays von primitiven Datentypen hingegen können direkt verwendet werden.
Falls du ein generisches Array erzeugen möchtest, kannst du Class<T> type = ... T[] array = java.lang.reflect.Array.newInstane(type, a.length);
verwenden. Allerdings benötigst du dafür eine Class-Instanz des Typs, die du dir wohl von außen reingeben lassen musst, da es zur Laufzeit nicht möglich ist zu bestimmen, von welchem generischen Typ T nun wirklich ist.[/QUOTE]Ich bin mir nicht sicher was dabei raus kommt, aber das geht afaik auch z.B. mit
@SuppressWarnings "unchecked"
Class<T> ttype = (Class<T>) type;```
Hab das jetzt auch nicht ausprobiert. Welchen Typ "type" nun annehmen muss, kann man wie gesagt mit instanceof feststellen.
```public <T> T[] doSomething(T[] anything) {
Class<?> type = null;
if(anything instanceof int[]) {
type = int.class;
}
// esle if fuer restliche primitive und Object (also insgesamt 9)
@SuppressWarnings "unchecked"
Class<T> ttype = (Class<T>) type;
// ... per Reflection in Array wandeln und zurueck geben
}```