Guten Tag,
ich suche eine Methode, welche mir einen boolschen Wert auf die Frage, sind die untersten Elemente des Arrays primitive/komplexe Datentypen, zurückliefert.
Wichtig:
Die Antwort ist nicht so einfach, wie einige denken mögen. Mit der Prüfung von
ist es nicht getan, denn das klappt nur bei eindimensionalen Arrays.
Daher schrieb ich, die untersten Elemente! Wenn ich ein zweidimensionales Array habe, funktioniert die Prüfung von
natürlich nicht mehr, da der Inhalt ebenfalls ein Array ist und somit als komplexer Datentyp gilt.
Meine unbefriedigende Lösung:
Im Moment löse ich dies mit einem Hack auf den Klassennamen.
Die
liefert bei Arrays immer eine Zeichenkette wie z.B.
zurück. Dabei steht die Anzahl von
für die Anzahl an Dimensionen. Bei
wäre es ein zweidimensionales Array, dessen untersten Elemente vom primitiven Typ
sind. Bei
wäre es ein dreidimensionales Array, dessen untersten Elemente vom primitiven Typ
sind.
Wenn der Buchstabe, nach dem von links gesehen letzten
ein
ist, dann handelt es sich definitiv um ein Array, das als unterste Elemente komplexe Datentypen beinhaltet. Genau das prüfe ich mit den regulärem Ausdruck oben.
Habt ihr eine effizientere Lösung?
ich suche eine Methode, welche mir einen boolschen Wert auf die Frage, sind die untersten Elemente des Arrays primitive/komplexe Datentypen, zurückliefert.
Wichtig:
Die Antwort ist nicht so einfach, wie einige denken mögen. Mit der Prüfung von
Code:
array[0]
Daher schrieb ich, die untersten Elemente! Wenn ich ein zweidimensionales Array habe, funktioniert die Prüfung von
Code:
array[0]
Meine unbefriedigende Lösung:
Im Moment löse ich dies mit einem Hack auf den Klassennamen.
Code:
var_array.getClass().toString().matches("^.*?\\[L.*\\;"))
Code:
getClass().toString()
Code:
[I
Code:
[
Code:
[[I
Code:
int
Code:
[[[C
Code:
char
Wenn der Buchstabe, nach dem von links gesehen letzten
Code:
[
Code:
L
Habt ihr eine effizientere Lösung?