int und Integer bzw. IntArray und int []

heut

Grünschnabel
Hallo!

Ich habe das Problem, dass ich ein vorgefertigtes Stück Software habe, dem ich vorne erzähle was ich haben möchte am Ende (zum Beispiel int []) und das mir als Ergebnis ein IntArray vor die Füße wirft.
Für meine Weiterverarbeitung brauche ich aber das int [], weshalb ich bisher so vorgegangen bin:

Code:
IntArray Arr = gibMirDasArray ();
List<Integer> L = Arr.getItem();
int [] DasMoechteIchHaben = new int [L.size()];
for (int i = 0; i < L.size(); i++) {
    DasMoechteIchHaben [i] = (int) L.get(i);

Das funtkioniert auf alle Fälle schonmal. Nun wollte ich mir das ganze etwas besser verpacken und eine generische Funktion dafür schreiben. Aber auch da habe ich das Problem, dass ich als generische Typen nur Objekte angeben kann, also wieder Integer, nicht aber int.
Meint Ansatz dazu:

Code:
class castObject< A, L > {
	
	@SuppressWarnings("unchecked")
	public A [] getArrayOf (List<L> inp) {
		A [] ret = null;
		for (int i = 0; i < inp.size(); i++) {
			ret [i] = (A) inp.get(i);
		}
		return ret;
	}
}

Das Objekt wollte ich erzeugen durch:
Code:
castObject<int, Integer> = new...
Geht aber nicht, wegen int.

Kann mir jemand weiterhelfen, wie ich das mit der generischen Klasse geregelt bekomme? Oder gerne auch, wie ich direkt vom IntArray zu int [] komme?

Danke schonmal!

heut
 

mattit-jah

Mitglied
Hi,

also ich möchte dir gerne weiterhelfen, aber leider versteh ich nicht genau was du vorhast.
Kannst du mir das mal genauer erklären, vielleicht klappt's dann mit der Hilfe :)
 

heut

Grünschnabel
hehehe, ok, ich geb mein Bestes!

Also... mal zum Ausgangspunkt:
Ich bekomme von einer Funktion verschiedene Arrays zurück (Integer, String, Byte usw). Allerdings nicht also "normales" Array wie zum Beispiel int [], sondern als IntegerArray.
Das Problem ist, dass ich nun dieses IntegerArray in ein int [] umwandeln muss, was ich bisher nur übe den oben beschriebenen Umweg über die List<Integer> geschafft habe.

Darum wollte ich wissen:
1. Gibt es die Möglichkeit, direkt von IntegerArray nach int [] zu casten?
2. Wenn nicht, wie kann ich dafür eine generische Funktion schreiben? Ich möchte vermeiden, für jeden Datentyp eine separate Fkt zu schreiben, wenn das möglich ist.

Zu den Quelltexten oben:
Der 1.: Das ist der von mir gefundene Weg, den ich recht unschön finde.
Der 2.: Das ist mein Ansatz, das ganze generisch zu lösen. Funktioniert aber nicht, da als Datentyp wieder ein Objekt erwartet wird und int nicht akzeptiert wird, sondern nur Integer.
Der 3.: Das unter 2. beschriebene Problem.

Danke für die Mühe!

heut
 

Neue Beiträge