Benutzer mit den meisten Antworten
Erstellen eines Arrays mit flexiebler Länge

Frage
-
Hallo zusammen,
ich möchte in einer Globalen Klasse ein Array anlegen, die Länge des Arrays stellt sich aber erst bei der ausführung des Programms heraus.
Hier habe ich die variable Deklariert, welche die größe des Arrays angibt.
private static int arraygr;
Folgenden Code habe ich für die erstellung des Arrays verwendet.
private static int[] ProtokollNr = new int[arraygr];
Zum Testen habe ich einen Haltepunkt an diese Stelle eingefügt.
In arraygr steht auch ein Wert z.B. 7
Aber wenn ich die Maus auf ProtokollNr halte steht dort folgendes
ProtokollNr {int[0]}
Es wurde also kein Array angelegt.
Kann es sein, das hier ein ganz dummer Syntaxfehler vorliegt?
Ciao Stefan
Aber es wird kein Array erstellt sonde
Antworten
-
Hallo HK,
zum Zeitpunkt der Instanziierung des ProtokollNr-Arrays ist arraygr nicht gesetzt. Du kannst das mit einem Haltepunkt an der Stelle der Deklaration (mitsamt des Setzens des Wertes) normal recht gut erkennen.
Selbst, wenn Du das Setzen von arraygr in den Konstruktor der umschliessenden Klasse schreiben würdest, würde das so nicht gesetzt.
Du kannst arraygr schon in der (private) Deklaration setzen, oder eben (z.B.) beides im (je nach Wunsch auch statischen) Konstruktor.class DeineKlasse { private static int arraygr; private static int[] ProtokollNr; public DeineKlasse() { arraygr = 7; ProtokollNr = new int[arraygr]; } }
ciao Frank- Als Antwort vorgeschlagen -Tim Afholderbach- Sonntag, 20. Februar 2011 15:31
- Als Antwort markiert hk_1000 Sonntag, 20. Februar 2011 16:14
Alle Antworten
-
Hallo HK,
zum Zeitpunkt der Instanziierung des ProtokollNr-Arrays ist arraygr nicht gesetzt. Du kannst das mit einem Haltepunkt an der Stelle der Deklaration (mitsamt des Setzens des Wertes) normal recht gut erkennen.
Selbst, wenn Du das Setzen von arraygr in den Konstruktor der umschliessenden Klasse schreiben würdest, würde das so nicht gesetzt.
Du kannst arraygr schon in der (private) Deklaration setzen, oder eben (z.B.) beides im (je nach Wunsch auch statischen) Konstruktor.class DeineKlasse { private static int arraygr; private static int[] ProtokollNr; public DeineKlasse() { arraygr = 7; ProtokollNr = new int[arraygr]; } }
ciao Frank- Als Antwort vorgeschlagen -Tim Afholderbach- Sonntag, 20. Februar 2011 15:31
- Als Antwort markiert hk_1000 Sonntag, 20. Februar 2011 16:14