4.16.4 | Arrays |
Für die Erzeugung und den Umgang mit Arrays, deren Elementtyp zum Zeitpunkt der Übersetzung noch nicht bekannt ist, stellt das Reflection-API die Klasse Array zur Verfügung.
Alle Operationen auf Arrays, die mit dieser Klasse erzeugt werden, erfolgen mit entsprechenden statischen Methoden anstatt der üblichen Sprachkonstrukte. Dies gilt fürDas folgende Beispiel erzeugt ein Array mit einem zur Laufzeit definierten Elementtyp und initialisiert die Elemente dieses Arrays.
- die Erzeugung, die mit Array.newInstance() anstatt des üblichen new-Operators erfolgt.
- den Zugriff auf Elemente, für den es zum Elementtyp passende get- und set-Methoden gibt.
- die Ermittlung der Länge, die mit der Methode Array.getLength() anstelle der üblichen direkten Abfrage mit length() durchgeführt werden muss.
import java.lang.reflect.Array; ... // Elementtyp ist int Class compType = Integer.TYPE; int length = 200; // Erzeugung des Arrays Object arr = Array.newInstance(compType, length); // Ermittlung der Länge mit getLength() for(int i = 0; i < Array.getLength(arr); i++) // Zugriff mit set-Methode Array.setInt(arr, i, 0);Material zum Beispiel
- Quelltexte: